2014-10-06 23 views
-1

我有这个任意的多维数组。无增量索引运行循环阵列

Array (

[0] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 2 
    ) 

[5] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 2 
    ) 

[10] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 2 
    ) 

[15] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 2 
    ) 

[1] => Array 
    (
     [0] => 2 
     [1] => 1 
     [2] => 2 
    ) 

[2] => Array 
    (
     [0] => 2 
     [1] => 1 
     [2] => 2 
    ) 

) 

我想运行一个for循环来提取每个子数组的数据。 但我不能做一个简单的循环,因为索引(0,5,10,15,1)是任意的。 有没有办法运行for循环,然后跳过子数组,如果它是空的?

谢谢!

+3

也许是foreach? http://php.net/manual/en/control-structures.foreach.php – Qualcuno 2014-10-06 17:19:53

+0

由于数组索引无序,因此应该使用foreach。 – 2014-10-06 17:21:47

+1

如果你是谷歌“如何循环虽然PHP阵列”你可能已经找到了答案:) – Martijn 2014-10-06 17:28:42

回答

3

这将采取$array并循环它,呼应键。
你有一个数组的数组,你可以把一个foreach在foreach:这里如果你在foreach的foreach

// First we take the main array ($array) and loop though its values 
foreach($array as $main_key =>$sub_array){ 
    echo $main_key.": <br />\n"; // echo the key, some extra html to format 

    // the values of the mainarray are arrays themselves, just loop again: 
    foreach($subarray as $sub_key =>$subvalue){ 
     echo '- '.$subvalue."<br />\n"; 
    } 
} 

有一个有点陷阱:

foreach($array as $key =>$value){ 
    foreach($value as $key=>$value){ /* ... */; } 
} 

这会造成非常奇怪的结果。内部的foreach使用相同的参数名称,并将一切搞砸了。

+0

谢谢!这就是为什么我们的下一个主题是foreach。 – 2014-10-06 17:35:49

+1

基于评论,我假设你正在学习编程。最大的提示,我可以给:**学习谷歌你想要的**。 – Martijn 2014-10-06 17:59:28