實例
<?php function test_odd($var) { return($var & 1); } $a1=array("a","b",2,3,4); print_r(array_filter($a1,"test_odd")); ?>
定義與用法
array_filter()函數用回呼函數過濾數組中的元素。
此函數把輸入陣列中的每個鍵值傳給回呼函數。如果回呼函數傳回 true,則把輸入數組中的目前鍵值傳回給結果陣列。數組鍵名保持不變。
語法
array_filter(array,callbackfunction);
參數 | #描述 |
array | 必需。規定要過濾的陣列。 |
callbackfunction | #必要。規定要用的回調函數。 |
技術細節
#傳回值: | #傳回過濾的陣列。 |
PHP 版本: | 4.0.6+ |
#今天在翻閱手冊查詢array_filter()的使用細節時,看到了個小關鍵點:If no callback is supplied, all entries of input equal to FALSE (see converting to boolean) will be removed. 如果沒有給出回調函數,所有的等於FALSE 的元素將會被移除掉,這不剛好可以用來過濾一些有空元素的陣列嗎?連忙寫例子測試一下想法:
$entry = array( 0 => '蓝色夏威夷的博客', 1 => false, 2 => 1, 3 => null, 4 => '', 5 => 'http://www.jb51.net', 6 => '0', 7 => array(), 8 => 0 ); $validarr = array_filter($entry); print_r($validarr); //输出结果: Array ( [0] => 蓝色夏威夷的博客 [2] => 1 [5] => http://www.jb51.net )
一些可以轉換成布林型FALSE的陣列元素都被移除了,對我們想要得到一個有效的陣列作了一個非常全面的過濾。
以上是php用回呼函數過濾數組中的元素的函數array_filter()的詳細內容。更多資訊請關注PHP中文網其他相關文章!