實作步驟:1、使用array_filter()函數呼叫回呼函數來過濾數組,傳回大於0的元素,語法「function f($num){return($num>0);}$res= array_filter($arr,"f");”,會傳回一個包含大於0元素的過濾數組;2、使用count()函數取得過濾數組的長度,也就是大於0元素的個數即可,語法“count (過濾數組)」。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在php中,可以利用array_filter ()函數和count()函數來求一個陣列大於0的元素個數。
實作步驟:
#步驟1:使用array_filter()函數過濾數組,傳回數組中大於0的元素
array_filter() 函數用回呼函數過濾陣列中的元素,會傳回一個過濾後的陣列。
此函數將輸入陣列中的每個鍵值傳給回呼函數。如果回呼函數傳回 true,則把輸入數組中的目前鍵值傳回給結果陣列。數組鍵名保持不變。
<?php header('content-type:text/html;charset=utf-8'); function f($num){ return($num>0); } $arr=array(2,-1,4,-8,-10,-5,9); var_dump($arr); $res=array_filter($arr,"f"); echo "过滤不大于0的数组后:"; var_dump($res); ?>
過濾數組中不大於0的元素後,傳回的過濾數組中包含的元素都是大於0的。
步驟2:使用count()函數取得篩選數組的長度,即大於0的元素數量
count() 函數傳回數組中元素的數目。
<?php header('content-type:text/html;charset=utf-8'); function f($num){ return($num>0); } $arr=array(2,-1,4,-8,-10,-5,9); var_dump($arr); $res=array_filter($arr,"f"); echo "过滤不大于0的数组后:"; var_dump($res); $len=count($res); echo "数组中大于0的元素个数为:".$len; ?>
說明:
#1、array_filter
array_filter — 使用回呼函數過濾陣列的元素
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
參數:
◇array:要遍歷的陣列
# ◇callback:使用的回呼函數
如果沒有提供callback 回呼函數,將刪除數組中array 的所有「空」元素。有關 PHP 如何判定「空」元素,請參閱 empty() 。
◇mode決定哪些參數傳送到callback 回呼的標誌:
ARRAY_FILTER_USE_KEY - 將鍵名稱作為callback 回呼的唯一參數,而不是值
#ARRAY_FILTER_USE_BOTH - 將值和鍵都作為參數傳遞給callback 回調,而不是僅傳遞值
預設值為0 ,只傳遞值作為callback 回調的唯一參數。
傳回值:傳回過濾後的陣列。
array_filter遍歷 array 陣列中的每個值,並將每個值傳遞給 callback 回呼函數。如果 callback 回呼函數傳回 true,則將 array 陣列中的目前值回傳至結果 array 陣列中。
傳回結果 array 數組的鍵名(下標)會維持不變,如果 array 參數是索引數組,則傳回的結果 array 數組鍵名(下標)可能會不連續。可以使用 array_values() 函數重新索引陣列。
當使用array_filter()函數來宣告回呼函數時,它會刪除false值(空值),但是,如果未指定回調函數,則將刪除數組中值等於FALSE的所有元素,例如空字串或NULL值。
2、count()
count() 函數可以統計出陣列裡所有元素的數量,或物件中的屬性個數,其語法格式如下:
count($array , $mode )
參數說明如下:
提示:如果$array 既不是數組,也不是對象,count() 函數將返回1;如果$array 等於NULL,則count() 函數返回0。
sizeof() 函數是 count() 函數的別名,也就是所 sizeof() 函數的功能及使用方法與 count() 函數完全相同。
推薦學習:《PHP影片教學》
以上是php怎麼求一個陣列中大於0的元素個數的詳細內容。更多資訊請關注PHP中文網其他相關文章!