2012-09-11 1 views
3

У меня есть следующий массивмассив зацикливание вопрос

Array(
Array 
(
    [Segment] => Array 
     (
      [id] => 738 
    ) 
), 
Array 
(
    [Segment] => Array 
     (
      [0] => array([id] => 740), 
      [1] => array([id] => 750) 
    ) 
) 
) 

как я могу цикл массив. Второе значение требует внутренний цикл.

я нужен вывод как

первый цикл, как id-> 738

второй цикл, как id-> 740, id-> 750

Привет, Nisanth

+0

Формат массива является немного странным. Кто его генерирует? – zerkms

+0

Фактически он возвращается из API –

+0

Ok. Итак, вы пробовали простой старый «foreach»? – zerkms

ответ

1

Вы можете выполните следующие действия:

foreach($array as $a) { 
    foreach($a as $segment => $array) { 
     if(isset($array['id'])) { 
      echo $array['id']; //if there is an `id` index echo it 
     } else { 
      foreach($array as $k => $v) { //or else.. start looping again 
       echo $v['id']; 
      } 
     } 
    } 
} 
+0

это работает Starx .. ?? – Gautam3164

+0

@gautamdharmapuri, Не проверял, но должен. Попробуйте. – Starx

0

Вы можете использовать array_walk_recursive, чтобы собрать все значения id.

Try:

$ids = array(); 
array_walk_recursive($arr, function($v, $k) use (&$ids) { 
    $ids[] = $v; 
}); 
var_dump($ids); 
Смежные вопросы