兩種去除方法:1、利用array_diff()函數將一個只包含「0」的陣列和原始數組進行比較即可,語法「array_diff($arr, [0])」;2、使用array_filter()函數呼叫回呼函數過濾數組,語法「function f($var){return($var!==0);}$arr=array_filter($arr,"f");」。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
方法1:利用array_diff()函數會移除陣列中的0
array_diff() 函數用於比較兩個(或更多)陣列的值,並傳回差集。
array_diff(array1,array2,array3...);
只需要使用一個只包含「0」的陣列和原始陣列進行比較即可,語法:array_diff($arr, [0])
<?php header('content-type:text/html;charset=utf-8'); $arr=array(1,2,3,0,1,"a","b","c",0,"d","a","c"); echo "原数组:"; var_dump($arr); $arr = array_diff($arr, [0]); echo "去除0后:"; var_dump($arr); ?>註:array_diff() 函數比較兩個(或更多)陣列的值(key=>value 中的value),並傳回差集數組,該數組包括了所有在被比較的數組(array1)中,但是不在任何其他參數數組(array2 或 array3 等等)中的值。
方法2:使用array_filter()函數移除陣列中的0
array_filter() 函數用回呼函數過濾陣列中的元素。 此函數把輸入陣列中的每個鍵值傳給回呼函數。如果回呼函數傳回 true,則把輸入數組中的目前鍵值傳回給結果陣列。數組鍵名保持不變。array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
描述 | |
---|---|
#array | 必要。規定要過濾的陣列。|
callback | 可選。規定要用的回呼函數。|
flag | 可選。決定callback 接收的參數形式:
|
<?php header('content-type:text/html;charset=utf-8'); function f($var) { return($var!==0); } $arr=array(1,2,3,0,1,"a","","c",0); echo "原数组:"; var_dump($arr); $arr = array_filter($arr,"f"); echo "去除0后:"; var_dump($arr); ?>#:array_filter()函數如果沒有回呼函數,那麼預設就是刪除數組中值為false的項目。
<?php header('content-type:text/html;charset=utf-8'); $arr=array(1,2,3,0,1,"0","","c",0,null,FALSE); echo "原数组:"; var_dump($arr); $arr = array_filter($arr); var_dump($arr); ?>推薦學習:《
PHP影片教學》
以上是php數組怎麼去除0值的詳細內容。更多資訊請關注PHP中文網其他相關文章!