php实现简易的搜索功能

好久没有看代码了,手生了,一直在盘算着转行的事;
1,今天看了一个接手的项目的源代码,发现一小段简易搜索的代码

2,/**
* 简易搜索
* @param $params
* @param $black
* @return array
*/
protected function _commonSearch($params, $black)
{
return array_merge(array_filter(array_diff_key($params, array_flip($black)), function($item){
if ($item === ”)
return false;
return true;
}),[‘status’=>1]);
}

备注:
array_flip() 函数用于反转/交换数组中所有的键名以及它们关联的键值。
$a1=array(“a”=>”red”,”b”=>”green”,”c”=>”blue”,”d”=>”yellow”);
$result=array_flip($a1);
print_r($result);
结果:
Array ( [red] => a [green] => b [blue] => c [yellow] => d )

array_diff_key() 函数用于比较两个(或更多个)数组的键名 ,并返回差集。(一般以第一个数组为主)

array_filter() 函数用回调函数过滤数组中的值。
function test_odd($var)
{
return($var & 1);
}

$a1=array(“a”,”b”,2,3,4);
print_r(array_filter($a1,”test_odd”));

/**
* 时间搜索
* @param $search
* @param $get
* @return array
*/
public function timeSearch(&$search, $get)
{
$temp = [ ];
if (!empty($get[‘start’])) {
$temp[‘create_time >= ?’] = strtotime($get[‘start’] . ‘00:00:00’);
unset($search[‘start’]);
}
if (!empty($get[‘end’])) {
$temp[‘create_time <= ?’] = strtotime($get[‘end’] . ‘23:59:59’);
unset($search[‘end’]);
}
return array_merge($search, $temp);
}

你可能感兴趣的:(php高级,php随记,PHp函数)