我需要檢查一組查詢參數中是否存在一組查詢參數。例如,我要檢查,如果array('option' => 'com_pages', 'view' => 'page')
,存在內:檢查數組中是否存在鍵/值對
Array
(
[option] => com_pages
[format] => html
[view] => page
)
或
Array
(
[option] => com_archive
)
我試圖找到一個PHP函數,將提供這種搜索,但發現便無法任何匹配我正在尋找的東西。所以,我創建了以下功能:
function checkRoute($params, $request) {
foreach($params as $key => $value) {
if(!array_key_exists($key, $request)) {
return false;
}
if($request[$key] != $value) {
return false;
}
}
return true;
}
哪裏$request
是當前請求的查詢參數的數組。
有沒有更快的方法來做到這一點與我失蹤的數組函數?
你希望它在您的兩個例子返回true?你希望它也能在空數組上返回true? – EarthDragon
'isset($ request [$ key])''會比'array_key_exists()'快,或者至少在幾年前......大聲笑......語義上我會梳理if if,if (!isset($ request [$ key])|| $ request [$ key]!== $ value)'',如果您關心這些邊緣情況,則使用'false'和'0'的嚴格類型... – ArtisticPhoenix
你也應該檢查[array_intersect](http://php.net/manual/en/function.array-intersect.php)它給你你的陣列的交集 – EarthDragon