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实现简易的搜索功能的全部內容,希望文章能夠幫你解決所遇到的問題。