PHP-从多维数组中删除条目
我有这样一个数组:PHP-从多维数组中删除条目,php,multidimensional-array,Php,Multidimensional Array,我有这样一个数组: $_SESSION['food'] = array( // ARRAY 1 array( "name" => "apple", "shape" => "round", "color" => "red" ), // ARRAY 2 array( "name" => "banana", "shape" => "long", "color" => "yello
$_SESSION['food'] = array(
// ARRAY 1
array(
"name" => "apple",
"shape" => "round",
"color" => "red"
),
// ARRAY 2
array(
"name" => "banana",
"shape" => "long",
"color" => "yellow"
)
);
我想搜索所有子数组中的所有键,如果找到搜索词,则删除整个子数组
因此,基本上:
谢谢 这应该可以做到:
foreach ($array as $key => $value) {
foreach ($value as $child_value) {
if ($child_value == $search_term) {
unset($array[$key]);
continue 2;
}
}
}
根据有多少尺寸标注,可以使用 我尚未测试以下各项,但它应该可以工作:
$unset = array_search('apple', $_SESSION['food']);
unset($_SESSION['food'][$unset]);
给你:
<?php
function deleteObjWithProperty($search,$arr)
{
foreach ($arr as &$val)
{
if (array_search($search,$val)!==false)
{
unlink($val);
}
}
return $arr;
}
?>
$\u会话['food']=array(
//数组1
排列(
“名称”=>“苹果”,
“形状”=>“圆形”,
“颜色”=>“红色”
),
//阵列2
排列(
“名称”=>“香蕉”,
“形状”=>“长”,
“颜色”=>“黄色”
)
);
回显“”。打印($会话['food']);
$arr_food=array();
$search_term='apple';
foreach($_会话['food']作为$arr){
如果($arr['name']==$search\u term){
未结算($arr);
}
$arr_food[]=$arr;
}
$\u会话['food]=$arr\u food;
回显“”。打印($会话['food']);
这不起作用。数组搜索只搜索数组的第一级。谢谢大家。我无法让任何示例正常工作,但最后我通过为每个子数组分配一个关联键对其进行了排序,这使我很容易找到需要删除的子数组。谢谢
$_SESSION['food'] = array(
// ARRAY 1
array(
"name" => "apple",
"shape" => "round",
"color" => "red"
),
// ARRAY 2
array(
"name" => "banana",
"shape" => "long",
"color" => "yellow"
)
);
echo '<pre>'.print_r($_SESSION['food']).'</pre>';
$arr_food = array();
$search_term = 'apple';
foreach($_SESSION['food'] AS $arr) {
if($arr['name'] == $search_term) {
unset($arr);
}
$arr_food[] = $arr;
}
$_SESSION['food'] = $arr_food;
echo '<pre>'.print_r($_SESSION['food']).'</pre>';