我有一個數組如何從數組中刪除空值?
陣列([0] => 0 [1] => [2] => 3 [3] =>)
我想從這個和的結果除去空值應該是這樣的
Array([0] => 0 [1] => 3) 我不想從數組中刪除0值。
我有一個數組如何從數組中刪除空值?
陣列([0] => 0 [1] => [2] => 3 [3] =>)
我想從這個和的結果除去空值應該是這樣的
Array([0] => 0 [1] => 3) 我不想從數組中刪除0值。
您可以使用array_filter()
將得到從陣列
print_r(array_filter($arr, 'strlen'));
這不起作用。 (array_filter([0,null,false,'hi',''],'strlen'));「 陣列(2){ [0] => INT(0) [3] => 串(2)的 「hi」 } – Rob
這還將刪除 '0',在一般假的,或falsey值可能具有忘記了別人。 – Gokigooooks
這將包括''這不是空的 –
你是在一個世界現在已經出現了麻煩,因爲從0中區分「0」和「0」的錯誤並不太容易。但不用擔心,它是可以解決的:
$result = array_filter($array, 'strlen');
這本身是可怕的,但似乎工作。
編輯:
這是不好的建議,因爲招在一個陌生的角落情況下湊到:
你應該這樣做的方式是這樣的:
$my_array = array(2, "a", null, 2.5, NULL, 0, "", 8);
function is_notnull($v) {
return !is_null($v);
}
print_r(array_filter($my_array, "is_notnull"));
這是很好的可讀性。
這將這樣的伎倆:
array_filter($arr, function($var){return !is_null($var);});
舊版本(PHP < 5。3):
function is_not_null ($var) { return !is_null($var); }
$filtered = array_filter($arr, 'is_not_null');
<?php
$arr = array(0 => 0, 1=>null, 2=>3, 3=>null);
foreach ($arr as $key=>$val) {
if ($val === null)
unset($arr[$key]);
}
$new_arr = array_values($arr);
print_r($new_arr);
?>
停止放:
Array
(
[0] => 0
[1] => 3
)
簡單地
$keys=array_keys($yourArray,NULL);
if(!empty($keys))
{
foreach($keys as $key)
{
unset($yourArray[$key]);
}
}
var_dump($yourarray);
http://www.php.net/具有自定義回調的array_filter。 – Cthulhu
在php.net上查找數組過濾器 –