php陣列怎麼去除0值

2022-10-10 22:02:39

兩種去除方法:1、利用array_diff()函數將一個只包含「0」的陣列和原陣列進行比較即可,語法「array_diff($arr, [0])」;2、使用array_filter()函數呼叫回撥函數過濾陣列,語法「function f($var){return($var!==0);}$arr=array_filter($arr,"f");」。

php入門到就業線上直播課:進入學習
API 檔案、設計、偵錯、自動化測試一體化共同作業工具:

本教學操作環境: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);
?>
登入後複製

1.png

注: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 接收的引數形式:

  • ARRAY_FILTER_USE_KEY - callback 接受鍵名作為的唯一引數
  • ARRAY_FILTER_USE_BOTH - 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);
?>

2.png

注: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);
?>
登入後複製

3.png

推薦學習:《》

以上就是php陣列怎麼去除0值的詳細內容,更多請關注TW511.COM其它相關文章!