$array=['foo',NULL,'bar',0,false,null,'0',''];
. Demo
O, bu önemli bilgiler muhtemelen proje/görevle ilgili biraz konu dışı array_filter
'ın açgözlü varsayılan davranışı getirmek için, ama bu sayfaya Googling eğer olduğunu var :
var_export(array_values(array_filter($array))); // NOT GOOD!!!!!
Kötü Çıktı :
: çalışacak yollarını Şimdi array (
0 => 'foo',
1 => 'bar',
)
Yöntem 1.: (array_values()
, ağırlık array_filter()
/!is_null()
)
var_export(array_values(array_filter($array,function($v){return !is_null($v);}))); // good
Yöntem 2: (foreach()
, otomatik dizinli bir dizi, !==null
)
foreach($array as $v){
if($v!==null){$result[]=$v;}
}
var_export($result); // good
Yöntem # 3: (array_walk()
, otomatik dizin dizisi, !is_null()
)
array (
0 => 'foo',
1 => 'bar',
2 => 0,
3 => false,
4 => '0',
5 => '',
)
: array_walk($array,function($v)use(&$filtered){if(!is_null($v)){$filtered[]=$v;}});
var_export($filtered); // good
Her üç yöntemler aşağıdaki "boş-boş" çıktı sağlar