删除基于输入的特定值索引


Remove specific value index based on input

当我知道元素名称时,如何从数组中删除元素?例如:

我有一个数组:

[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
            )
        )
    )
  1. 用户输入CCD_ 1

CCD_ 2被移除。

  1. 用户输入asparagus

CCD_ 4被移除。

使用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);

您可以将Null保存在其位置,然后在其上使用array_filter来删除Null数据。将结果存储在所需的变量中。

在这种情况下,使用foreach来运行循环。检查该值是否与输入值匹配。如果匹配,请将其替换为null并应用array_filter()。