有没有一种简单的方法可以在PHP中迭代这个结构的关联数组:
该数组$searches
具有编号索引,具有4到5个关联部分.所以,我不仅需要遍历$searches[0]
通过$searches[n]
,而且$searches[0]["part0"]
通过$searches[n]["partn"]
.困难的部分是不同的索引具有不同数量的部分(有些可能缺少一个或两个).
想要以一种美好,整洁,易懂的方式做到这一点?
嵌套两个foreach
循环:
foreach ($array as $i => $values) { print "$i {\n"; foreach ($values as $key => $value) { print " $key => $value\n"; } print "}\n"; }
我知道这是一个问题,但是Spl Iterators很容易迭代多维数组
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); foreach($iterator as $key=>$value) { echo $key.' -- '.$value.'
'; }
看到
http://php.net/manual/en/spl.iterators.php
看起来像一个递归函数的好地方,尤其是.如果你有两个以上的深度.
function doSomething(&$complex_array) { foreach ($complex_array as $n => $v) { if (is_array($v)) doSomething($v); else do whatever you want to do with a single node } }
您应该能够使用嵌套的foreach语句
从PHP手册
/* foreach example 4: multi-dimensional arrays */ $a = array(); $a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "y"; $a[1][1] = "z"; foreach ($a as $v1) { foreach ($v1 as $v2) { echo "$v2\n"; } }