首頁  >  文章  >  後端開發  >  php用回呼函數過濾數組中的元素的函數array_filter()

php用回呼函數過濾數組中的元素的函數array_filter()

黄舟
黄舟原創
2017-11-07 13:26:271533瀏覽

實例

回呼函數過濾陣列中的元素:

<?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 => &#39;蓝色夏威夷的博客&#39;, 
             1 => false, 
             2 => 1, 
             3 => null, 
             4 => &#39;&#39;, 
             5 => &#39;http://www.jb51.net&#39;, 
             6 => &#39;0&#39;,
             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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn