Php 按条件从阵列中删除子阵列
我想根据数组的元素从数组中删除子数组,例如,如果它在键ppd名称的变量中包含值TOTO 我的阵列是:Php 按条件从阵列中删除子阵列,php,arrays,Php,Arrays,我想根据数组的元素从数组中删除子数组,例如,如果它在键ppd名称的变量中包含值TOTO 我的阵列是: Array ( [1] => Array ( [id] => R419FD00Customers1556106426 [main] => Array ( [release] => R419
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的父数组?从注释中添加了作者示例,删除了重复请求