我有返回以下多维数组的函数。我无法控制数组的形成方式。我正在尝试访问“结果”元素。这个问题是,父元素的名称不断变化。 “Result”元素的位置始终相同(因为名称为“Result”)。是否可以在不知道父元素名称的情况下访问该元素?
Array
(
[sHeader] => Array
(
[aAction] => ActionHere
)
[sBody] => Array
(
[CreatePropertyResponse] => Array
(
[CreatePropertyResult] => Array
(
[Message] => Successfully completed the operation
[Result] => 0
[TransactionDate] => 2013-05-19T21:54:35.765625Z
[bPropertyId] => 103
)
)
)
)
递归搜索数组键/值的一个简单选择是使用递归迭代器;这些是内置类,是标准 PHP 库 http://php.net/spl.
$result = false;
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach ($iterator as $key => $value) {
if ($key === 'Result') {
$result = $value;
break;
}
}
var_dump($result);
这里的好处是,如果您愿意,您可以检查深度Result
item ($iterator->getDepth()
)在数组结构中和/或检查一个或多个祖先键($iterator->getSubIterator(…)->key()
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)