我在PHP中有一个多维数组,希望能够通过它搜索并查找所有属于对象的值。在多维数组中搜索对象
我想这样做的原因是,当发现一个对象时,我可以通过调用其上的output()
方法来替换它。 output()
方法使用get_object_vars()
将自己变成一个数组,然后它返回。
下面是一个例子,其实现了什么,我手动想要的(但只有2级深度):
// First level search...
foreach($array as $k => $v) {
// Check if it's an array.
if (is_array($v)) {
// Second level search...
foreach($v as $k2 => $v2) {
// If it's an object - convert it!
if (is_object($v2)) {
$array[$k][$k2] = $array[$k][$k2]->output();
}
}
}
// If it's an object - convert it!
if (is_object($v)) {
$array[$k] = $array[$k]->output();
}
}
完美! Tim Cooper的回答揭示了我之后的功能(但我并不知道存在) - 并且你的回答已经调整了它以使其正常工作 - 谢谢! – 2012-07-30 11:31:43