/*
* array_filter() 用回調函數過濾數組中的元素
* array_filter(array,callbackfunction);array and callbackfunction 必填
* 該函數把輸入數組中的每個鍵值傳給回調函數。如果回調函數傳回 true,則把輸入數組中的目前鍵值傳回結果數組中。數組鍵名保持不變。
* */
//用例1:
$arr = [
['id'=>1,'ins_id'=>101,'status_desc'=>'駁回'],
['id'=>2,'ins_id'=>102,'status_desc'=>'拒絕'],
['id'=>3,'ins_id'=>103,'status_desc'=>'撤銷'],
['id'=>4,'ins_id'=>104,'status_desc'=>'已發送'],
['id'=>5,'ins_id'=>105,'status_desc'=>'運作中'],
];
$validReview = array_filter($arr,function ($review){
return !in_array($review['status_desc'],['駁回','拒絕','撤銷']);
});
var_dump($validReview);
// 用例1結果:
/*
*
array(2) {
[3]=>
array(3) {
["id"]=>
int(4)
["ins_id"]=>
int(104)
["status_desc"]=>
string(9) "已發送"
}
[4]=>
array(3) {
["id"]=>
int(5)
["ins_id"]=>
int(105)
["status_desc"]=>
string(9) "運作中"
}
}
*/
//用例2: 過濾 diary log
$arr = [
['id'=>1,'cate'=>'diary_log'],
['id'=>2,'cate'=>'photograph_log']
];
function filter($var){
if($var['cate'] == 'diary_log') {
return false;
}
return true;
}
$data = array_filter($arr,'filter');
var_dump($data);
/*
*
array(1) {
[1]=>
array(2) {
["id"]=>
int(2)
["cate"]=>
string(14) "photograph_log"
}
}*/