【发布时间】:2010-10-29 12:39:27
【问题描述】:
我有下一个数组:
Array(
[id] => 1
[children] => Array(
[2] => Array(
[id] => 2
[inactive] => true
[children] => Array(
[4] => Array(
[id] => 4
[children] => Array()
)
)
)
[3] => array(
[id] => 3
[children] => Array(
[5] => Array(
[id] => 5
[inactive] => true
[children] => Array()
)
)
)
)
)
我需要从这个数组中删除 [inactive] = true 的元素。但我的问题在下。我应该移动数组元素。 输出应该是:
Array(
[id] => 1
[children] => Array(
[4] => Array(
[id] => 4
[children] => Array()
)
[3] => array(
[id] => 3
[children] => Array(
)
)
)
)
这是我的职责。但它会删除数组元素及其所有子元素。
public function deleteInactive($userTree)
{
if (!empty($userTree)) {
foreach($userTree['children'] as $userId => &$user) {
if (array_key_exists('inactive', $user)) {
$userTree['children'] += $user['children'];
unset($userTree['children'][$userId]);
$this->deleteInactive($userTree);
break;
}
$this->deleteInactive($user);
}
}
return $userTree;
}
你能帮我修改一下这个功能吗?
非常感谢。
【问题讨论】:
标签: php arrays function multidimensional-array