這兩天在用PHPCMS出現點問題,查看其代碼時,發現程序多次用到array_filter函數,以前知道這是利用回調函數過濾群組的群組函數,但是PC使用時並沒有帶函數名,奇怪之下就谷歌了一下,發現這竟然是一個妙用。
首先我們選用看array_filter函數的手冊說明:
定義和用法
array_filter() 函數用回調函數過濾數組中的元素,如果自定義過濾函數返回 true,則被操作的數組的當前值就會被包含在返回的結果數組中, 並將結果組成一個新的數組。如果原數組是一個關聯數組,鍵名保持不變。
語法
array_filter(array,function)
參數
描述
array
必需。規定輸入的數組。
function
必需。自定義函數的名稱。
例子
<?php
function myfunction($v)
{
if ($v==="Horse")
{
return true;
}
return false;
}
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
print_r(array_filter($a,"myfunction"));
?>
輸出:
Array ( [2] => Horse )
而如果沒有帶回調函數時會怎麼樣?我們下面看例子:
$arr = array(
0 => ‘火躍’,
1 => false,
2 => 1,
3 => null,
4 => ”,
5 => ‘http://www.xx.org’,
6 =>’0′
);
print_r(array_filter($arr));
輸出:
Array ( [0] => 火躍 [2] => 1 [5] => http://www.xx.org )
現在你可能猜到了這個的作用了,就刪除群組中所有相當於false的值!