从PHP数组中删除零值

Rol*_*and 39 php arrays

我有一个像这样的普通数组

Array
(
    [0] => 0
    [1] => 150
    [2] => 0
    [3] => 100
    [4] => 0
    [5] => 100
    [6] => 0
    [7] => 100
    [8] => 50
    [9] => 100
    [10] => 0
    [11] => 100
    [12] => 0
    [13] => 100
    [14] => 0
    [15] => 100
    [16] => 0
    [17] => 100
    [18] => 0
    [19] => 100
    [20] => 0
    [21] => 100
)
Run Code Online (Sandbox Code Playgroud)

我需要从这个数组中删除所有0,这可能是一个PHP数组函数

Gum*_*mbo 88

array_filter那样做.如果您不提供回调函数,它会过滤掉所有等于false的值(布尔转换).

  • 不错的解决方案。我想我的答案对于有此问题的任何人仍然有用,但是要删除的值不为零。 (2认同)
  • 当需要自定义过滤时,可以使用array_filter()进行回调. (2认同)

Jon*_*ley 8

您可以循环遍历数组并取消设置任何完全等于0的项目

foreach ($array as $array_key => $array_item) {
  if ($array[$array_key] === 0) {
    unset($array[$array_key]);
  }
}
Run Code Online (Sandbox Code Playgroud)


Ami*_*ati 6

你可以使用这个:

$result = array_diff($array, [0]);   
Run Code Online (Sandbox Code Playgroud)


the*_*com 5

第一种方法:

<?php
    $array = array(0,100,0,150,0,200);

    echo "<pre>";
    print_r($array);
    echo "</pre>";

    foreach($array as $array_item){
            if($array_item==0){
               unset($array_item);
        }
        echo"<pre>";
        print_r($array_item);
        echo"</pre>";
    }
?>
Run Code Online (Sandbox Code Playgroud)

第二种方法:使用array_diff函数

  <?php
    $array = array(0,100,0,150,0,200);
    $remove = array(0);
    $result = array_diff($array, $remove);                          
    echo"<pre>";
    print_r($result);
    echo"</pre>";
  ?>
Run Code Online (Sandbox Code Playgroud)


Sla*_*lav 5

有点晚了,但复制并粘贴:

$array = array_filter($array, function($a) { return ($a !== 0); });
Run Code Online (Sandbox Code Playgroud)