一、什麼是數組的filter方法?
在PHP中,數組可以看做是一種特殊的數據類型,可用於存儲多個值。而filter方法,則是PHP提供的一種數組篩選過濾方法,可以根據指定的條件過濾掉一些值,從而得到需要的結果。
使用filter方法前,必須要定義一個回調函數,作為過濾條件。該回調函數有以下兩個可選參數:
- 第一個參數表示數組中當前正在被過濾的元素值
- 第二個參數表示當前元素的鍵名(可選)
然後,將回調函數傳遞給array_filter()函數,即可對數組進行過濾。
二、array_filter()函數的用法
array_filter()函數是PHP中用於篩選數組元素的函數,其用法如下:
$result = array_filter($array, $callback);
其中,$array是要過濾的數組,$callback是一個函數,用於定義過濾條件。$result為處理後的結果數組。
例如,要篩選掉數組中的負數,可以這樣寫:
//定義回調函數
function positive($var){
return $var >= 0;
}
//定義數組
$arr = array(2, -5, 8, -3, 7);
//使用array_filter()函數進行過濾
$result = array_filter($arr, "positive");
//輸出結果
print_r($result);
輸出結果為:
Array ( [0] => 2 [2] => 8 [4] => 7 )
可以看到,過濾掉了數組中的-5和-3兩個負數。
三、數組過濾的實際應用
1.過濾掉數組中的空值
有時候,我們需要過濾掉數組中的空值,可以這樣寫:
//定義回調函數
function not_empty($var){
return !empty($var);
}
//定義數組
$arr = array('hello', '', 'world', ' ', null, '!', array());
//使用array_filter()函數進行過濾
$result = array_filter($arr, 'not_empty');
//輸出結果
print_r($result);
輸出結果為:
Array ( [0] => hello [2] => world [5] => ! )
該回調函數使用了PHP中的empty函數,用於判斷當前元素是否為空。
2.過濾掉數組中不符合規則的元素
有時候,我們需要將數組中符合特定規則的元素提取出來,可以這樣寫:
//定義回調函數
function start_with_a($var){
return (substr($var, 0, 1) === 'a');
}
//定義數組
$arr = array('apple', 'banana', 'pear', 'orange', 'apricot');
//使用array_filter()函數進行過濾
$result = array_filter($arr, 'start_with_a');
//輸出結果
print_r($result);
輸出結果為:
Array ( [0] => apple [4] => apricot )
該回調函數使用了substr函數,用於判斷當前元素的第一個字符是否為’a’。
3.過濾掉數組中的重複元素
有時候,我們需要過濾掉數組中的重複元素,可以這樣寫:
//定義數組
$arr = array(1, 2, 3, 3, 2, 4, 1, 5);
//使用array_filter()函數進行過濾
$result = array_filter($arr, function ($key) use (&$arr) {
$index = array_keys($arr, $key);
return $index[0] == array_search($key, $arr);
});
//輸出結果
print_r($result);
輸出結果為:
Array ( [0] => 1 [1] => 2 [2] => 3 [5] => 4 [7] => 5 )
該回調函數使用了array_keys和array_search函數,用於查找數組中指定元素的鍵名。
四、總結
利用PHP中數組的filter方法進行數據過濾,可以大大簡化代碼,提高開發效率。它可以應用於很多場景,如過濾掉數組中的空值、不符合規則的元素、重複元素等。需要注意的是,回調函數中返回值為true的元素會被保留,返回值為false的會被過濾掉。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254454.html
微信掃一掃
支付寶掃一掃