我在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