无法在PHP中循环遍历数组

无法在PHP中循环遍历数组,php,arrays,foreach,Php,Arrays,Foreach,我有一个数组,看起来像这样 阵列3{ [0]=> 阵列1{ [0]=> 阵列1{ [@attributes]=> 阵列1{ [数据]=> 今天有23场足球赛 } } } [1]=> 阵列1{ [0]=> 阵列1{ [@attributes]=> 阵列1{ [数据]=> string8足球 } } } [2]=> 阵列1{ [0]=> 阵列1{ [@attributes]=> 阵列1{ [数据]=> 今天踢足球 } } } } 如果最终使用深度嵌套的数组,则可以使用array\u walk\u

我有一个数组,看起来像这样

阵列3{ [0]=> 阵列1{ [0]=> 阵列1{ [@attributes]=> 阵列1{ [数据]=> 今天有23场足球赛 } } } [1]=> 阵列1{ [0]=> 阵列1{ [@attributes]=> 阵列1{ [数据]=> string8足球 } } } [2]=> 阵列1{ [0]=> 阵列1{ [@attributes]=> 阵列1{ [数据]=> 今天踢足球 } } }
} 如果最终使用深度嵌套的数组,则可以使用array\u walk\u recursive来收集数组“leaves”的键和值:

<?php

$data = 
[
    [
        [
            'wanted' => 'foo'
        ],
    ],
    [
        [
            'wanted'=> 'bar'
        ],
        'dead'=>'parrot'
    ]
];

array_walk_recursive($data, function($v, $k) use (&$wanteds) {
    if($k==='wanted')
        $wanteds[]=$v;
});
var_export($wanteds);
请注意,叶键上的条件检查仅收集所需的属性


然后,您可以轻松地在生成的数组中循环。

$d[$x][0]['@attributes']['data']似乎很奇怪。为什么有[$x]和更高版本的[0]?因为这是数组的结构方式。否$d包含$array中的第一个元素,这意味着您只需执行$d[0]['@attributes']['data']即可访问数据。foreach循环不需要$x计数器。谢谢。这就解决了问题。非常感谢。
array (
    0 => 'foo',
    1 => 'bar',
  )