当我知道元素名称时,如何从数组中删除元素?例如:
我有一个数组:
[troli] => Array (
[fruit] => Array (
[0] => Array (
[name] => apple
[foo] => bar
)
[1] => Array (
[name] => banana
[foo] => bar
)
)
[vegetables] => Array (
[0] => Array (
[name] => tomatoes
[foo] => bar
)
[1] => Array (
[name] => asparagus
[foo] => bar
)
)
)
apple
[troli][fruit][0]
已删除。
asparagus
[troli][vegetables][1]
已删除。
答案 0 :(得分:1)
使用array_filter
函数的解决方案:
$arr = ['troli' => Array(
'fruit' => Array(
0 => Array(
'name' => 'apple'
),
1 => Array(
'name' => 'banana'
)
),
'vegetables' => Array(
0 => Array(
'name' => 'tomatoes'
),
1 => Array(
'name' => 'asparagus'
)
)
)];
$itemToRemove = "asparagus";
foreach ($arr['troli'] as $k => &$v) {
$v = array_filter($v, function($v) use($itemToRemove){
return $v['name'] != $itemToRemove;
});
}
print_r($arr);
答案 1 :(得分:0)
您可以将Null保存在其位置,然后在其上使用array_filter来删除空数据。将结果存储在您想要的变量中。
对于这种情况,使用foreach运行循环。检查值是否与输入值匹配。如果匹配将其替换为null并应用array_filter()。