2016-05-28 6 views
0

У меня есть две петли foreach. В первом списке меню цикла foreach, а второй цикл foreach - цикл выборки базы данных. Так что я хочу сравнить первый ключ Еогеаспа на второе значение Еогеаспа первого результат Еогеаспа массива показанPHP foreach loop внутри цикла foreach?

Array 
(
    [master/city] => City 
    [master/national_holiday] => National Holiday 
    [master/operator_comments] => Operator Comments 
    [master/sensors] => Sensors 
) 

и второго Еогеасп результат массива

Array 
     (
      [0] => Array 
       (
        [menu_url] => monitoring/tickets 
        [menu_category] => monitoring 
        [read] => 1 
        [write] => 1 
       ) 

      [1] => Array 
       (
        [menu_url] => monitoring/serach_tickets 
        [menu_category] => monitoring 
        [read] => 1 
        [write] => 1 
       ) 

      [2] => Array 
       (
        [menu_url] => master/national_holiday 
        [menu_category] => monitoring 
        [read] => 1 
        [write] => 0 
       ) 
) 

Я пытаюсь использовать этот код, но не работаю нормально

foreach($first_array as $key => $value) { 

    foreach($second_array as $second) { 
    if ($second['value'] == $key) { 
     echo "Hi"; 
    } 
    } 
} 

Вы можете предположить, в чем моя ошибка.

Мой реальный код, используя в виду

<?php 
        $i = 1; 

        foreach($first_array as $k => $val) { 
        ?> 
        <tr> 
         <td>{{ $i }}</td> 
         <td class="mailbox-name">{{ $val }}</td> 
        <?php 
         foreach ($edit_rights['role_rights'] as $rights) { 
        ?>           
         <td><input type="checkbox" class="master_read" name="menu_master_read[]" <?php if ($rights['menu_url'] == $k) { echo 'checked'; } else {echo ''; }?> value="{{ $k }}"></td> 
         <td><input type="checkbox" class="master_write" name="menu_master_write[]" value="{{ $k }}"></td> 
        </tr> 
        <?php } $i++; } ?> 
        </tr> 
+0

Нет совпадений, так что вы хотите сделать? –

+0

у вас нет ключа с именем 'value' в вашем втором массиве. ('$ second ['value']' будет null или, скорее, «неопределенным индексом ошибки») – Jeff

+0

Кроме того: какое значение должно совпадать с каким ключом? Ничего не может сравниться. Или есть другие данные, которые вы не показывали? – Jeff

ответ

0

Как я не вижу никакой связи между массивами, но я догадываюсь, что вы ищете.

Вы можете искали ralation ключа второго массива menu_url и первого массива.

Для этого вам необходимо использовать $second['menu_url'] во втором массиве.

foreach($first_array as $key => $value) { 
    foreach($second_array as $second){ 
    if ($second['menu_url'] == $key) { 
     echo "Hi"; 
    } 
    } 
} 
+1

Спасибо @Frayne Konok –

0

, если проверка соответствия на по на $ second_array value.use этот код:

foreach($first_array as $key => $value) { 
     foreach($second_array as $second=>$val) { 
      foreach($val as $check=>$check_value){ 
       //var_export($check);echo "\n"; 
       //var_export($key);echo "\n"; 
       //var_export($second_array[$second][$check]);echo "\n"; 
       //var_export($second_array[$second][$check] == $key);echo "\n"; 
       //echo"======================= \n"; 
       if ($second_array[$second][$check] == $key) { 
        echo "Hi"; 
       } 
      } 
     } 
} 

если просто проверить [ 'menu_url'] соответствие с array.use этот код:

foreach($first_array as $key => $value) { 
    foreach($second_array as $second){ 
    if ($second['menu_url'] == $key) { 
     echo "Hi"; 
    } 
    } 
}