php中的array_filter()函數(shù)的使用
函數(shù)概述
array_filter()函數(shù)是一個(gè)用于過濾數(shù)組中元素的函數(shù),它會(huì)返回一個(gè)新的數(shù)組,新數(shù)組中的元素是由原數(shù)組中的元素所依照某個(gè)條件篩選而來(lái)。根據(jù)官方文檔的定義,它的語(yǔ)法如下:
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
其中,$array表示待過濾的原數(shù)組,$callback是可選的回調(diào)函數(shù)參數(shù),$flag是可選的掩碼參數(shù)。
php中的array_filter()函數(shù)用于篩選數(shù)組中的元素,并返回一個(gè)新的數(shù)組,新數(shù)組的元素是所有返回值為true的原數(shù)組元素。array_filter()函數(shù)的使用語(yǔ)法如下:
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
其中,參數(shù)說(shuō)明如下:
$array:必選參數(shù),表示要篩選的原數(shù)組。$callback:可選參數(shù),表示篩選的回調(diào)函數(shù),可以是內(nèi)置函數(shù)或自定義函數(shù),用于對(duì)數(shù)組元素進(jìn)行篩選判斷。如果省略該參數(shù),則返回?cái)?shù)組中所有值為true的元素。$flag:可選參數(shù),表示回調(diào)函數(shù)的行為標(biāo)志,常用的取值有ARRAY_FILTER_USE_KEY(回調(diào)函數(shù)接受元素的鍵名作為唯一參數(shù))和ARRAY_FILTER_USE_BOTH(回調(diào)函數(shù)同時(shí)接受元素的鍵名和鍵值作為參數(shù))。默認(rèn)值為0,即只有元素的值作為參數(shù)。
示例如下:
$array = [1, 2, 3, 4, 5];
$newArray = array_filter($array, function($value){
return $value % 2 == 0;
});
print_r($newArray);上述代碼將輸出:
Array
(
[1] => 2
[3] => 4
)
其中,通過回調(diào)函數(shù)判斷數(shù)組元素是否為偶數(shù),篩選出所有的偶數(shù)元素,返回新數(shù)組。
PHP函數(shù)array_filter
array_filter迭代數(shù)組中每個(gè)元素到一個(gè)自定義函數(shù),保留返回true的值到一個(gè)新的結(jié)果數(shù)組中。
/**
* Iterates over each value in the <b>array</b>
* passing them to the <b>callback</b> function.
* If the <b>callback</b> function returns true, the
* current value from <b>array</b> is returned into
* the result array. Array keys are preserved.
* @link https://php.net/manual/en/function.array-filter.php
* @param array $input <p>
* The array to iterate over
* </p>
* @param callback $callback [optional] <p>
* The callback function to use
* </p>
* <p>
* If no callback is supplied, all entries of
* input equal to false (see
* converting to
* boolean) will be removed.
* </p>
* @param int $flag [optional] <p>
* Flag determining what arguments are sent to <i>callback</i>:
* </p><ul>
* <li>
* <b>ARRAY_FILTER_USE_KEY</b> - pass key as the only argument
* to <i>callback</i> instead of the value</span>
* </li>
* <li>
* <b>ARRAY_FILTER_USE_BOTH</b> - pass both value and key as
* arguments to <i>callback</i> instead of the value</span>
* </li>
* </ul>
* @return array the filtered array.
* @meta
*/
function array_filter(array $input, $callback = null, $flag = 0) { }示例一:默認(rèn)不定義回調(diào)函數(shù)
$array = [
3, false, 0, '',null
];
$result = array_filter($array);
var_dump($result);
//結(jié)果
//array(1) {
// [0] =>
// int(3)
//}示例二:定義函數(shù),返回等于0的元素
$array = [
3, false, 0, '',null
];
$result = array_filter($array, function ($v){
return $v === 0;
});
var_dump($result);
//結(jié)果
//array(1) {
// [2] =>
// int(0)
//}示例三:傳遞第三個(gè)參數(shù),返回鍵等于1的元素
$array = [
3, false, 0, '',null
];
$result = array_filter($array, function ($k){
return $k === 1;
}, ARRAY_FILTER_USE_KEY);
var_dump($result);
//結(jié)果
//array(1) {
// [1] =>
// bool(false)
//}示例四:傳遞第三個(gè)參數(shù),返回鍵等于1且值等于false的元素
$array = [
3, false, 0, '',null
];
$result = array_filter($array, function ($v, $k){
return $k === 1 && $v === false;
}, ARRAY_FILTER_USE_BOTH);
var_dump($result);
//結(jié)果
//array(1) {
// [1] =>
// bool(false)
//}到此這篇關(guān)于php中的array_filter()函數(shù)的文章就介紹到這了,更多相關(guān)php array_filter()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP實(shí)現(xiàn)163郵箱自動(dòng)發(fā)送郵件
163郵箱實(shí)用性非常高。那么基于php如何實(shí)現(xiàn)163郵箱自動(dòng)發(fā)送郵件功能呢,下面腳本之家小編給大家分享具體實(shí)現(xiàn)代碼2016-03-03
php使用ffmpeg向視頻中添加文字字幕的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇php使用ffmpeg向視頻中添加文字字幕的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-05-05
在PHP中實(shí)現(xiàn)使用Guzzle執(zhí)行POST和GET請(qǐng)求
今天小編就為大家分享一篇在PHP中實(shí)現(xiàn)使用Guzzle執(zhí)行POST和GET請(qǐng)求,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-10-10
smarty內(nèi)置函數(shù)capture用法分析
這篇文章主要介紹了smarty內(nèi)置函數(shù)capture用法,實(shí)例分析了capture的三種常見用法,需要的朋友可以參考下2015-01-01
thinkPHP實(shí)現(xiàn)遞歸循環(huán)欄目并按照樹形結(jié)構(gòu)無(wú)限極輸出的方法
這篇文章主要介紹了thinkPHP實(shí)現(xiàn)遞歸循環(huán)欄目并按照樹形結(jié)構(gòu)無(wú)限極輸出的方法,涉及thinkPHP數(shù)據(jù)庫(kù)查詢,數(shù)組遍歷與字符串操作等技巧,需要的朋友可以參考下2016-05-05
Laravel統(tǒng)一封裝接口返回狀態(tài)實(shí)例講解
這篇文章主要介紹了Laravel統(tǒng)一封裝接口返回狀態(tài)實(shí)例講解,封裝接口返回狀態(tài)有利于前后端分離項(xiàng)目的合作開發(fā),有正好需要的同學(xué)可以研究下2021-03-03

