2012-11-15 109 views
0

可能重複:
Loop an array of array遍歷PHP中的數組

所以我知道如何遍歷甚至鍵=>值(關聯)數組,但我有一個奇怪的陣列我需要穿起來走路,並打印出值:

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

我想我可以做的是:

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

所以,你可以看到我迷路了,我該如何走過下一個陣列?

回答

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

嘗試:

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

Manual for foreach

0

在你的循環,你可以這樣做:

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

這取決於你的陣列有多深,如果你有數組的數組的數組...等等,不同的方法會更好,但如果你只有一個級別,這是一個非常簡單的方法。

7

你可以試試:

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

嗯,你可以做這樣的事情:

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

array_walk_recursive()一種替代方案:

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

array_walk_recursive($object_array, 'mydebug'); 

方便,如果你這樣做價值觀簡單(例如。只是echo ing)。