Php 数组循环问题

Php 数组循环问题,php,arrays,Php,Arrays,我有以下数组 Array( Array ( [Segment] => Array ( [id] => 738 ) ), Array ( [Segment] => Array ( [0] => array([id] => 740), [1] => array([id] => 750) ) ) ) 如何循环数组。第二个值需

我有以下数组

Array(
Array
(
    [Segment] => Array
        (
            [id] => 738
    )
),
Array
(
    [Segment] => Array
        (
            [0] => array([id] => 740),
            [1] => array([id] => 750)
    )
)
)
如何循环数组。第二个值需要内部循环

我需要输出为

第一个循环id->738

第二个循环id->740,id->750

问候,,
尼桑斯

您可以这样做:

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'];
           }
        }
    }
}
您可以使用来收集所有id值

尝试:


数组格式有点奇怪。谁生成的?实际上它是从APIOk返回的。那么,您是否尝试过普通的旧
foreach
?我可以检查计数并将if/else条件写入循环内部循环。但是如果我们改变数组结构,我会寻找一个简单的解决方案如果结构改变了,你需要改变相应的代码。@gautamdharmapuri,还没有测试过,但应该测试。试试看。
$ids = array();
array_walk_recursive($arr, function($v, $k) use (&$ids) {
  $ids[] = $v;
});
var_dump($ids);