Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除基于输入的特定值索引_Php_Arrays - Fatal编程技术网

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个相同的水果/蔬菜