2016-08-21 75 views
-1

設從嵌套陣列中選擇特定的元素說我有此嵌套數組:使用PHP的foreach

Array 
(
    [0] => page 
    [1] => section 
    [2] => side 
    [3] => Array 
     (
      [0] => Array 
       (
        [0] => url1 
        [1] => url2 
        [2] => url3 
       ) 

      [1] => Array 
       (
        [0] => url4 
        [1] => url5 
        [2] => url6 
       ) 

      [2] => Array 
       (
        [0] => url7 
        [1] => url8 
        [2] => url9 
       ) 

     ) 

) 

欲FOREACH(PHP)從每個陣元獲得具有索引​​[1]

foreach($arr as $key => $value){ 
     echo $key." : ".$value."\n"; 

foreach($value as $key => $value){ 
    echo " ". $key." : ".$value."\n"; 

    foreach($value as $key => $value){ 
     echo "  ". $key." : ".$value."\n"; 
    } 
} 
} 

,這是我的輸出:

0 : page 
1 : section 
2 : side 
3 : Array 
    0 : Array 
    0 : url1 
    1 : url2 
    2 : url3 
    1 : Array 
    0 : url4 
    1 : url5 
    2 : url6 
    2 : Array 
    0 : url7 
    1 : url8 
    2 : url9 

但我想同時一些薄來選擇從每個陣列特定元素g像這樣:

1 : url2 
1 : url5 
1 : url8 

任何人都可以幫忙嗎?

回答

0

您可以收集單獨數組中的條目並在之後進行迭代。基於您的代碼,像這樣:

<?php 
$entriesWithOne = []; 
foreach($arr as $key => $value){ 
    echo $key." : ".$value."\n"; 

    foreach($value as $key => $value){ 
     echo " ". $key." : ".$value."\n"; 

     foreach($value as $key => $value){ 
      echo "  ". $key." : ".$value."\n"; 
      if ($key == 1) { 
       $entriesWithOne[] = $value; 
      } 
     } 
    } 
} 

foreach($entriesWithOne as $url) { 
    echo '1 : ' . $url . "\n"; 
} 

請注意,我只是做了檢查(並添加到陣列)在這個例子中最內層的循環中,因爲它滿足您的要求。但是,如果您也想從其他循環中收集數據,則必須在此處執行類似的操作。