我有一个看起来像这样的数组...
G.node['node']['a']['initial'] = 100
G.node['node']['a']['final'] = 10
G.node['node']['a']['initial'] = 500
G.node['node']['b']['final'] = 15
等通常,我将遍历该数组以获取所需的数据,如下所示……
min(G.node[node]['a']['final'],G.node[node]['b']['final']) / the initial attribute of the node that has the min final value.
= 10/100
但是,由于某种原因,这个非常简单的foreach循环将不会输出我所期望的数据。循环不返回任何内容。我添加了
array(3) {
[0]=>
array(1) {
[0]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(23) "football games on today"
}
}
}
[1]=>
array(1) {
[0]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(8) "football"
}
}
}
[2]=>
array(1) {
[0]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(14) "football today"
}
}
}
}
回显$ x;行到代码中,它将回显递增的x值,因此我知道是否正确遍历数组。
这已经花了很长的几天的时间,所以也许我只是精疲力尽而错过了一些非常简单的东西。但是我没看到。感谢您的任何帮助。非常感谢。
答案 0 :(得分:0)
如果您最终使用深度嵌套的数组,则可以使用array_walk_recursive来收集数组“叶”的键和值:
<?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);
输出:
array (
0 => 'foo',
1 => 'bar',
)
请注意对叶键进行条件检查,以仅收集所需的属性。
然后您可以轻松地遍历生成的数组。