【问题标题】:traversing an array in php [duplicate]遍历php中的数组[重复]
【发布时间】:2012-11-15 21:47:28
【问题描述】:
可能重复:
Loop an array of array
所以我知道如何遍历偶数键 => 值(关联)的数组,但我有一个奇怪的数组,我需要遍历它并打印出值:
$object_array = array(
'type' => 'I am type',
array(
'property' => 'value',
'property_2' => 'value_2'
)
);
我认为我能做的是:
foreach($object as $key=>$vlaue){
//what now?
}
如您所见,我迷路了,我该如何通过下一个数组?
【问题讨论】:
标签:
php
arrays
associative-array
【解决方案1】:
你可以试试:
function traverse($array) {
foreach ($array as $key => $value) {
if (is_array($value)) {
traverse($array);
continue;
}
echo $value;
}
}
【解决方案2】:
foreach($object as $key=>$value){
if( is_array($value) ) {
foreach($value as $key2=>$value2) {
//stuff happens
}
} else {
//other stuff
]
}
【解决方案3】:
试试:
foreach($object_array as $value) {
if(!is_array($value))
echo $value;
else {
foreach($value as $m)
echo $m;
}
}
Manual for foreach
【解决方案4】:
在你的 for 循环中你可以这样做:
if(is_array($object[$key]))
//process inner array here
这取决于你的数组有多深,如果你有数组数组的数组......等等,不同的方法会更好,但如果你只有一个级别,这是一种非常简单的方法.
【解决方案5】:
好吧,你可以这样做:
foreach($object_array as $key=>$value)
{
if(is_array($value) {
foreach($value as $k=>$v) {
echo $k." - ".$v;
}
} else {
echo $key." - ".$value;
}
}
【解决方案6】:
array_walk_recursive() 的替代方案:
function mydebug($value, $key) {
echo $key . ' => ' . $value . PHP_EOL;
}
array_walk_recursive($object_array, 'mydebug');
如果您使用这些值做一些简单的事情(例如,只是 echo ing)会很方便。