PHP关联数组

PHP关联数组,php,Php,我在下面有一个print_r输出,我想通过foreach循环访问所有单个元素的值,但不幸的是,我无法通过foreach实现这一点。有人能帮我回答这个问题吗。 我可以通过此$arr['Level1'][Date]访问,返回值为“2015-04-14 07:15” 但是如何通过foreach循环获取所有元素值呢 Array ( [Level1] => Array ( [Date] => 2015-04-14 07:15

我在下面有一个print_r输出,我想通过foreach循环访问所有单个元素的值,但不幸的是,我无法通过foreach实现这一点。有人能帮我回答这个问题吗。 我可以通过此
$arr['Level1'][Date]
访问,返回值为“2015-04-14 07:15”

但是如何通过foreach循环获取所有元素值呢

Array
(
    [Level1] => Array
        (
            [Date] => 2015-04-14 07:15
            [img1] => pic1
            [img2] => pic2
            [InnerLevel] => Array
                (
                    [0] => value1
                    [1] => value2
                )

        )


    [Level2] => Array
        (
            [Date] => 2015-04-15 08:15
            [img1] => pic1
            [img2] => pic2
            [InnerLevel] => Array
                (
                    [0] => value3
                    [1] => value4
                )

        )

)
数组是否关联这一事实不会改变任何事情


$item
依次是foreach循环中的
$myarray['Level1']
的副本,然后
$myarray['Level2']
(如果更多)的副本。

它取决于索引深度

要提取简单关联数组,请执行以下操作:

$mainarray['Name']='Value';
$mainarray['Child']['Name']='Value';
使用:

使用:


实际上,在php中还有另一种方法可以做到这一点

“使用Spl迭代器在多维数组上进行迭代很容易:

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));

foreach($iterator as $key=>$value) {
    echo $key.' -- '.$value.'<br />';
}
$iterator=new recursiveiterator(new recursivearrayiiterator($array));
foreach($key=>$value的迭代器){
回显$key.'-'.$value.
; }
这将遍历所有可能的iterable对象。 看


“-引自-由@Gordon回答

你的确切结果是什么?谢谢你Casimir!但是上面的“Level1”和“Level2”也是动态值,所以我不能说$myarray['Level1']。另外还有更多级别(1…n)?@newbie83:这不是问题,这样可以完全忽略项的“名称”(“keys”是一个很好的术语),但是如果您想知道这一点,可以使用
foreach($key=>myarray$item)
,其中
$key
包含键名(例如
Level1
)。
$mainarray['Child']['Name']='Value';
foreach ($mainarray as $aname=>$asubarray)
{
    echo "In ".$aname." from ".$mainarray."...<br>";
    foreach ($asubarray as $asubname=>$asubvalue){
        echo $asubname." = ".$avalue." <br>";
    }
    echo "<br>";
}
<br>
\n
<?php
foreach ($myarray as $level => $itemArr) {

    if(is_array($itemArr)) {
        foreach ($itemArr as $levelArr) {
            if(is_array($levelArr)) {
                foreach ($levelArr as $key => $interlevelValue) {
                    echo $interlevelValue;
                }
            } else {
            echo $levelArr;
            }
        }
    } else {
        echo $itemArr;
    }
}
?>
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));

foreach($iterator as $key=>$value) {
    echo $key.' -- '.$value.'<br />';
}