0

可能重复:
循环数组数组

所以我知道如何遍历偶数键 => 值(关联)的数组,但是我有一个奇怪的数组,我需要遍历它并打印出值:

$object_array = array(
    'type' => 'I am type',
    array(
        'property' => 'value',
        'property_2' => 'value_2'
    )
);

我认为我能做的是:

foreach($object as $key=>$vlaue){
   //what now?
}

所以你可以看到我迷路了,我如何穿过下一个阵列?

4

6 回答 6

7

你可以试试:

function traverse($array) {
   foreach ($array as $key => $value) {
      if (is_array($value)) {
         traverse($array);
         continue;
      }
      echo $value;
   }
}
于 2012-11-15T21:51:39.957 回答
0

尝试:

foreach($object_array as $value) {
  if(!is_array($value))
   echo $value;
   else {
    foreach($value as $m)
    echo $m; 
  }
 }

foreach 手册

于 2012-11-15T21:50:15.357 回答
0

在你的 for 循环中,你可以这样做:

if(is_array($object[$key]))
    //process inner array here

这取决于你的数组有多深,如果你有数组数组的数组......等等,不同的方法会更好,但如果你只有一个级别,这是一种非常简单的方法。

于 2012-11-15T21:51:37.377 回答
0
foreach($object as $key=>$value){
    if( is_array($value) ) {
        foreach($value as $key2=>$value2) {
            //stuff happens
        }
    } else {
        //other stuff
    ]
}
于 2012-11-15T21:53:01.810 回答
0

好吧,你可以这样做:

foreach($object_array as $key=>$value)
{
    if(is_array($value) {
        foreach($value as $k=>$v) {
            echo $k." - ".$v;
        }
    } else {
        echo $key." - ".$value;
    }
}
于 2012-11-15T21:53:14.727 回答
0

一个替代方案array_walk_recursive()

function mydebug($value, $key) {
    echo $key . ' => ' . $value . PHP_EOL;
}

array_walk_recursive($object_array, 'mydebug');

如果您使用这些值做一些简单的事情(例如,只是echoing),则很方便。

于 2012-11-15T21:54:29.803 回答