检查数组中是否存在键/值对

时间:2017-07-09 05:29:24

标签: php

我需要检查一组查询参数中是否存在一组查询参数。例如,我想检查Array ( [option] => com_pages [format] => html [view] => page ) 是否存在于:

Array
(
    [option] => com_archive
)

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;
}

我试图找到一个可以提供这种搜索的php函数,但是找不到与我想要的匹配的任何东西。所以我创建了以下函数:

$request

其中<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Category extends CI_Controller { public function __construct() { parent::__construct(); } public function index($category_name = 'None Selected') { echo "The Category name is " . $category_name; } } 是当前请求的查询参数的数组。

对于我缺少的数组函数,有没有更快的方法呢?

1 个答案:

答案 0 :(得分:2)

您可以对两个数组使用array_intersect_assoc,并检查结果的计数是否等于预期的匹配数...

 if ( count(array_intersect_assoc($a, $b)) == count($a) ){
   // then match ...
 }