2016-09-01 89 views
-1

我有一個非常基本的問題。我想遍歷一個多維數組。假設我想添加一個if語句來檢查值沒有打破foreach循環......我的目的是爲了獲得特定值簡單的foreach循環迭代

數組
$foo = [ 
    'one'=> [ 
      'id'=>1, 
      'name'=>'32dsfd23' 
      ], 

    'two' => [ 
      'id'=>1, 
      'name'=>'322e3' 
      ], 
    ]; 

    function new_func($arr){ 

     $data=[]; 
     foreach($arr as $val) { 

       foreach($val as $key =>$foofoo) { 
        if(array_key_exists('id',$val)){ 
        $data['new_arr']=$foofoo; 
       } 
       } 

     } 
     return $data; 
    } 

    echo "<pre>"; 
    print_r(new_func($foo)); 
    echo "</pre>"; 

結果是: Array ( [new_arr] => 322e3 )

而且我想得到這樣的東西: Array ( [new_arr] [0]=> 32dsfd23, [1]=> 322e3, )

+0

$ data ['new_arr'] [] = $ foofoo; 2維數組 –

回答

1

你需要推動數組中的新元素。現在你覆蓋它們。

$foo = [ 
    'one'=> [ 
     'id'=>1, 
     'name'=>'32dsfd23' 
     ], 

    'two' => [ 
     'id'=>1, 
     'name'=>'322e3' 
     ], 
    ]; 

    function new_func($arr){ 

     $data=[]; 
     foreach($arr as $val) { 
      foreach($val as $key =>$foofoo) { 
       if(array_key_exists('id',$val)) { 

        $data['new_arr'][] = $foofoo; 

       } 
      } 
     } 
     return $data; 
    } 

    echo "<pre>"; 
    print_r(new_func($foo)); 
    echo "</pre>"; 
+0

明白了!感謝數百萬! – user3387719

+0

不客氣!如果你想將答案標記爲已接受的答案。 –

0

當你 $data['new_arr']=$foofoo; 你覆蓋的價值在$數據[ 'new_arr']。

您需要將其更改爲$data['new_arr'][]=$foofoo;,該值將插入該數組中的值。