2016-09-01 35 views
-1

私は本当に基本的な問題があります。私は多次元配列を反復処理したい。 Array ( [new_arr] => 322e3 )簡単なforeachループの繰り返し

そして、私がしたい:私は、foreachループを壊すことなく、値を確認するif文を追加したいとし...私の目的は、特定の値

$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] [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

あなたは$データ[ 'new_arr']であなたが値を上書きしている $data['new_arr']=$foofoo; を行うと。

$data['new_arr'][]=$foofoo;に変更する必要があります。この値は、その配列に値を挿入します。

関連する問題