Удалить нулевые значения из массива 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

Solutions Collecting From Web of "Удалить нулевые значения из массива PHP"

array_filter делает это. Если вы не предоставляете функцию обратного вызова, она фильтрует все значения, равные false ( логическое преобразование ).

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

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

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

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

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

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

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

 <?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)