Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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 - Fatal编程技术网

Php 按条件从阵列中删除子阵列

Php 按条件从阵列中删除子阵列,php,arrays,Php,Arrays,我想根据数组的元素从数组中删除子数组,例如,如果它在键ppd名称的变量中包含值TOTO 我的阵列是: Array ( [1] => Array ( [id] => R419FD00Customers1556106426 [main] => Array ( [release] => R419

我想根据数组的元素从数组中删除子数组,例如,如果它在键ppd名称的变量中包含值TOTO

我的阵列是:

Array
(
    [1] => Array
        (
            [id] => R419FD00Customers1556106426
            [main] => Array
                (
                    [release] => R419
                    [delivery] => FD00
                    [upgrade Type] => Customers
                    [upgrade date] => 2019-04-11
                )

        )

    [2] => Array
        (
            [id] => R422Beta1internal1556107476
            [main] => Array
                (
                    [release] => R422
                    [delivery] => Beta1
                    [upgrade Type] => internal
                    [upgrade date] => 2019-04-10
                )

            [0] => Array
                (
                    [ppd name] => TOTO
                    [start clone] => 2019-04-24
                    [ppd delivery] => 2019-04-18
                    [target evenement] => lastBuild
                    [target date] => 2019-04-18
                )

            [1] => Array
                (
                    [ppd name] => TITI
                    [start clone] => 2019-04-05
                    [ppd delivery] => 2019-04-05
                    [target evenement] => lastBuild
                    [target date] => 2019-04-04
                )

        )

    [6] => Array
        (
            [id] => R420FD03Customers1556110346
            [main] => Array
                (
                    [release] => R420
                    [delivery] => FD03
                    [upgrade Type] => Customers
                    [upgrade date] => 2019-04-24
                )

        )

)
我试过了

foreach ($arr_data as $Array) {
    foreach($Array as $subKey => $subArray) {
        if ($subArray['ppd name'] == 'TOTO') {
            unset($arr_data[$subKey]);
        }
    }
}
您可以使用array_walk、foreach删除所需的元素

$search = 'TOTO';
array_walk($arr, function($value, $key) use (&$arr, $search){
    foreach($value as $k => $v){
        if(isset($v['ppd name']) && $v['ppd name'] == $search){

            unset($arr[$key][$k]);
        }
    }
});

你意识到你需要使用一个循环,那么到目前为止你已经走了多远?我试着用foreach$arru数据作为$Array{foreach$Array作为$subKey=>$subArray{if$subArray['ppd name']=='TOTO'{unset$arru data[$subKey]}是否仅删除键为0的子数组或键为2的父数组?从注释中添加了作者示例,删除了重复请求