2016-09-01 8 views
-1

У меня действительно основная проблема. Я хочу выполнить итерацию через многомерный массив. Предположим, я хочу добавить, если заявление, чтобы проверить значения, не нарушая цикл Еогеасп ... моя цель состоит в том, чтобы получить массив конкретных значенийПростая петля цикла 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;, которое будет вставлять значение в этот массив.

Смежные вопросы