當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP array_filter()用法及代碼示例


PHP中的內置函數用於通過用戶定義的函數(也稱為回調函數)來過濾數組的元素。 array_filter()函數遍曆數組中的每個值,並將它們傳遞給用戶定義的函數或回調函數。如果回調函數返回true,則將數組的當前值返回到結果數組中,否則不返回。這樣可以保留數組的鍵,即原始數組和輸出數組中元素的鍵相同。

用法:

array array_filter($array, $callback_function, $flag)

參數:該函數具有三個參數,其中一個是必需參數,另外兩個是可選參數。


  1. $array(強製性):這是指要對其執行過濾操作的輸入數組。
  2. $callback_function(可選):指用戶定義的函數。如果未提供函數,則將刪除數組中等於FALSE的所有條目。
  3. $flag(可選):引用傳遞給回調函數的參數。
    • ARRAY_FILTER_USE_KEY-將key作為唯一參數傳遞給回調函數,而不是數組的值。
    • ARRAY_FILTER_USE_BOTH-將值和鍵都作為參數而不是值傳遞給回調。

返回值:該函數返回過濾後的數組。

下麵的程序顯示了如何使用array_filter()函數從數組中返回或過濾掉偶數元素。

<?php 
  
// PHP function to check for even elements in an array 
function Even($array) 
{ 
    // returns if the input integer is even 
    if($array%2==0) 
       return TRUE; 
    else 
       return FALSE;  
} 
  
$array = array(12, 0, 0, 18, 27, 0, 46); 
print_r(array_filter($array, "Even")); 
  
?>

輸出:

Array
(
    [0] => 12
    [1] => 0
    [2] => 0
    [3] => 18
    [5] => 0
    [6] => 46
)

在此示例中,我們將不傳遞回調函數,而讓我們看一下輸出。我們將看到未打印0或false元素:

<?php 
  
// PHP function to check for even elements in an array 
function Even($array) 
{ 
    // returns if the input integer is even 
    if($array%2==0) 
       return TRUE; 
    else 
       return FALSE;  
} 
  
$array = array(12, 0, 0, 18, 27, 0, 46); 
print_r(array_filter($array)); 
  
?>

輸出:

Array
(
    [0] => 12
    [3] => 18
    [4] => 27
    [6] => 46
)

參考: http://php.net/manual/en/function.array-filter.php



相關用法


注:本文由純淨天空篩選整理自Chinmoy Lenka大神的英文原創作品 PHP | array_filter() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。