【问题标题】:how to remove multidimensional array in php如何在php中删除多维数组
【发布时间】:2021-05-19 01:57:56
【问题描述】:

我有一些数组

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [0] => 1
                    [1] => MOUSE
                    [2] => 0
                    [3] => 1
                  
                )

            [1] => Array
                (
                    [0] => 2
                    [1] => LAPTOP
                    [2] => 0
                    [3] => 0
                  
                )

            [3] => Array
                (
                    [0] => 4
                    [1] => PHONE
                    [2] => 0
                    [3] => 0
                    
                )
           
        )

)

我需要从数组中删除“0”值,所以结果应该是。

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [0] => 1
                    [1] => MOUSE
                    [2] => 0
                    [3] => 1
                )   
        )
)

如何使用动态代码将其删除?因为它会执行大量的数组。我卡在里面好几天了

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    这个filterArray 函数应该可以工作。

    它只是检查您提交的主数组中的数组(在本例中为 $array["data"]),然后检查每个子数组中的第三个位置,如果值不为零则返回它。

    $array = array(
        "data" => array(
            array(
                "0" => 1,
                "1" => "MOUSE",
                "2" => 0,
                "3" => 1
            ),
            array(
                "0" => 2,
                "1" => "LAPTOP",
                "2" => 0,
                "3" => 0
            ),
            array(
                "0" => 4,
                "1" => "PHONE",
                "2" => 0,
                "3" => 0
            )
        )
    );
    
    function filterArray($elem) {
        if (is_array($elem)) {
            return (bool) $elem[3];
        }
        return false;
    }
        
    $array["data"] = array_filter($array["data"], "filterArray");
    
    var_dump($array);
    

    这里是你的数组的输出:

    array(1) {
        ["data"] => array(1) {
            [0] => array(4) {
                [0] => int(1)
                [1] => string(5) "MOUSE"
                [2] => int(0)
                [3] => int(1)
            }
        }
    }
    

    【讨论】:

    • 这个社区的官方语言是英语。也许你以为你在 Stack Overflow en Espanol。你能把你的答案翻译成英文吗?
    • 哦,对不起。我会的!
    • @Cmen 那么你有一个错误,或者你的数组结构不是你在这里粘贴的。这个答案效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2018-12-26
    • 2017-06-23
    相关资源
    最近更新 更多