遍历php中的数组

时间:2012-11-15 21:47:29

标签: php arrays associative-array

  

可能重复:
  Loop an array of array

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

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

我认为我能做的是:

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

因为你可以看到我迷路了,我该如何走过下一个阵列?

6 个答案:

答案 0 :(得分:7)

您可以尝试:

function traverse($array) {
   foreach ($array as $key => $value) {
      if (is_array($value)) {
         traverse($array);
         continue;
      }
      echo $value;
   }
}

答案 1 :(得分:0)

尝试:

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

Manual for foreach

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

foreach($object as $key=>$value){
    if( is_array($value) ) {
        foreach($value as $key2=>$value2) {
            //stuff happens
        }
    } else {
        //other stuff
    ]
}

答案 4 :(得分:0)

嗯,你可以这样做:

foreach($object_array as $key=>$value)
{
    if(is_array($value) {
        foreach($value as $k=>$v) {
            echo $k." - ".$v;
        }
    } else {
        echo $key." - ".$value;
    }
}

答案 5 :(得分:0)

array_walk_recursive()的另一种选择:

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

array_walk_recursive($object_array, 'mydebug');

如果你使用这些值做一些简单的事情(例如只是echo),那就很方便。