如果缺少密钥,PHP Array将删除项目

时间:2010-10-18 19:24:06

标签: php arrays

我有以下数组格式:

Array
(
    [0] => stdClass Object
        (
            [tid] => 3
            [children] => Array ()
        )
    [1] => stdClass Object
        (
            [tid] => 15
        )
    [2] => stdClass Object
        (
            [tid] => 12
            [children] => Array ()
        )
    [3] => stdClass Object
        (
            [tid] => 9
            [children] => Array ()
        )
)

我想删除没有[儿童]的项目,并且遇到一些困难。

非常感谢帮助,谢谢。

2 个答案:

答案 0 :(得分:3)

试试这个,其中$array是您要处理的数组

foreach($array as $key => $value)
{
    if(!isset($value['children'])
        unset($array[$key]);
}

这将删除数组中未设置子项或null的所有项目。由于在您的示例中您将子项设置为空数组,因此您需要使用isset()而不是empty()

答案 1 :(得分:1)

你可以试一试,让我知道会发生什么吗?

$myArray = array_filter($myArray, "hasChildren");

function hasChildren($node) {
    if (isset($node->children)) return true;
    return false;
}