2016-05-28 45 views
0

私は2つのforeachループを持っています。最初のforeachループメニューリストと2番目のforeachループではデータベースフェッチループです。だから私はforeachループ内のPHP foreachループ?

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

と第二のforeach配列結果

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"; 
    } 
    } 
} 
を動作していない第二のforeach値最初のforeach配列結果に最初のforeachキーを比較したいです

あなたは私の間違いを示唆できますか?私はあなたのアレイ間の任意の関係を見ていないが、私はあなたが探しているものを推測することができたようビュー

<?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

2番目の配列に 'value'というキーがありません。 ( '$ second ['value']'はnullか、むしろ 'undefined index'というエラーになります) – Jeff

+0

それ以外に、どの値がどのキーと一致するか?一致するものは何もありません。または、表示していない他のデータがありますか? – Jeff

答えて

0

に使用して

私の実際のコード。

第2のアレイのmenu_urlと の最初のアレイのキーの組み合わせを探しているかもしれません。

このためには、2番目の配列に$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

$上での整合性チェックは、このコードvalue.use second_array場合:ちょうど[ 'menu_url']をチェックすると、このコードをarray.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"; 
       } 
      } 
     } 
} 

を:

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