Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除复杂数组元素_Php_Arrays_Json_Multidimensional Array - Fatal编程技术网

Php 删除复杂数组元素

Php 删除复杂数组元素,php,arrays,json,multidimensional-array,Php,Arrays,Json,Multidimensional Array,因此,我想根据子数组中的id从JSON数组中删除一个数组元素。我知道这听起来很奇怪。下面是一个数组示例。我想根据本例中[id]=20220的[dealer][id]数组删除整个数组[0] Array ( [results] => Array ( [offset] => 1 [length] => 15 [data] => Array (

因此,我想根据子数组中的id从JSON数组中删除一个数组元素。我知道这听起来很奇怪。下面是一个数组示例。我想根据本例中[id]=20220的[dealer][id]数组删除整个数组[0]

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


}
实际上,[results]数组中有更多的元素。我不知道该怎么办


非常感谢您的帮助

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

$id = 20220;

foreach ($array['results']['data'] as $key => $value) {
    if ($value['dealer']['id'] == $id) {
        unset($array['results']['data'][$key]);
    }
}
使用数组过滤器

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

这真的是一个JSON数组吗?你有一个大括号。。。但没有开放的卷曲括号。不管它是否是JSON。。。这是无效的。我的错,这是一个API调用,我是一个JSON数组,但我这样做:$result=JSON\u decode($response,true);将其更改为常规数组。很抱歉。