如果数组值等于 0,PHP 删除条目

use*_*841 0 php arrays multidimensional-array

这就是我 print_r 我的数组时得到的结果。它是一个多维数组,包含以下值。

    [7] => Array
    (
        [0] => 1
        [1] => 34
        [2] => 181
        [3] => 50
    )



    [9] => Array
    (
        [0] => 1
        [1] => 2
        [2] => 1
        [3] => 47
    )

   [2] => Array
    (
        [0] => 20
        [1] => 0
        [2] => 1621
        [3] => 45
    )
   [3] => Array
    (
        [0] => 120
        [1] => 0
        [2] => 121
        [3] => 45
    )
Run Code Online (Sandbox Code Playgroud)

我想删除键 [1] 等于 0 的所有条目。完成修改后,我的最终数组应该像这样

    [7] => Array
    (
        [0] => 1
        [1] => 34
        [2] => 181
        [3] => 50
    )



[9] => Array
    (
        [0] => 1
        [1] => 2
        [2] => 1
        [3] => 47
    )
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

Jef*_*ert 5

foreach救援:

foreach($arr as $key => $entry) {
    if(isset($entry[1]) && $entry[1] === 0) {
        unset($arr[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

举个array_filter例子:

$arr = array_filter($arr, function($entry) {
    return $entry[1] !== 0;
});
Run Code Online (Sandbox Code Playgroud)

(假设至少是 php 5.3,尽管您可以通过创建一个命名函数并将其作为第二个参数传递给 来解决这个问题array_filter