删除复杂的数组元素

时间:2017-12-20 03:23:35

标签: php arrays json multidimensional-array

所以我想基于子数组中的id从JSON数组中删除数组元素。我知道这听起来很奇怪。这是一个数组的例子。我想基于[dealer] [id]数组删除整个数组[0],在这个例子中[id] = 20220。

Array
(
    [results] => Array
        (
            [offset] => 1
            [length] => 15
            [data] => Array
                (
                    [0] => Array
                        (
                            [dealer] => Array
                                (
                                    [id] => 20220
                                    [name] => apple
                                )
                        )
                 )
        )


}

实际上[results]数组中有更多元素。我不确定该怎么做。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

首先循环数据键,然后检查经销商ID是否与搜索到的ID匹配

$id = 20220;

foreach ($array['results']['data'] as $key => $value) {
    if ($value['dealer']['id'] == $id) {
        unset($array['results']['data'][$key]);
    }
}

答案 1 :(得分:0)

使用array_filter,

$array['results']['data'] = array_filter($array['results']['data'], function($v){return $v['dealer']['id'] != 20220;});