Php 删除基于输入的特定值索引
知道元素名称后,如何从数组中删除元素?例如: 我有一个数组:Php 删除基于输入的特定值索引,php,arrays,Php,Arrays,知道元素名称后,如何从数组中删除元素?例如: 我有一个数组: [troli] => Array ( [fruit] => Array ( [0] => Array ( [name] => apple [foo] => bar ) [1] => Array ( [name] => banana [f
[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][1]
已删除。您可以将Null保存在其位置,然后在其上使用数组过滤器删除Null数据。将结果存储在所需的变量中
对于这种情况,使用foreach运行循环。检查该值是否与输入值匹配。如果匹配,则将其替换为null并应用array_filter()。使用
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);
你是怎么想的?展示您的尝试可能有助于我们更好地了解您的需求:)此外,如果您的用例应该删除第一次出现的情况,您能否精确说明您的用例?每个人?某个函数?我想创建一个函数,在troli中禁用超过1个相同的水果/蔬菜