Удалить нулевые значения из массива PHP

У меня нормальный массив, подобный этому

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
)

Мне нужно удалить все 0 из этого массива, возможно ли это с помощью функции массива PHP

Ответ 2

Вы можете просто перебрать массив и сбросить любые элементы, которые в точности равны 0

foreach ($array as $array_key => $array_item) {
  if ($array[$array_key] === 0) {
    unset($array[$array_key]);
  }
}

Ответ 3

Первый метод:

<?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>";
    }
?>

Второй метод: Используйте 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>";
  ?>

Ответ 4

бит позже, но скопируйте и вставьте:

$array = array_filter($array, function($a) { return ($a !== 0); });

Ответ 5

Если вы не заботитесь о сохранении ключа для корреляции данных, вы можете использовать этот однолинейный трюк:

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

$b = explode('][', trim(str_replace('[0]', '', '['.implode('][', $a).']'), '[]'));

print_r($b); // Array ([0] => 150 [1] => 100 [2] => 100 [3] => 100)

Ответ 6

Вы можете использовать это:

$result = array_diff($array, [0]);   

Ответ 7

$array = array_filter($array, function($a) { return ($a !== 0); });"

если вы хотите удалить ноль и пустые значения, правильный код:

$array = array_filter($array, function($a) { return ($a !== 0 AND trim($a) != ''); });

Ответ 8

Это также является эффективным решением для удаления нежелательной ценности.

 <?php
   $array = array(0,100,0,150,0,200);
   foreach($array as $a){    
   if (false !== $key = array_search("0", $array)){        
   unset($array[$key]);    
   }    
   }    
   print_r($array);    
   ?>