如何检查匹配的键值对

时间:2015-05-31 23:18:46

标签: php arrays operators

我有一组带有键值对的数组:

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 1, 'yellow' => 7, 'cyan'   => 8);

如何检查两个数组是否包含匹配键和值?我想提出一个条件,如果$array1$array2有匹配的对blue=>1,那么我想做点什么?

3 个答案:

答案 0 :(得分:1)

循环浏览$array1并检查$array2的值是否相同:

foreach($array1 as $i=>$val){
    if($array2[$i]==$val)
        //do stuff
}  

答案 1 :(得分:1)

您可以使用array_intersect_assoc

php > var_dump(count(array_intersect_assoc($array1,$array2)) > 0);
bool(true)

php > $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
php > $array2 = array('green' => 5, 'blue' => 2, 'yellow' => 7, 'cyan'   => 8);
php > var_dump(count(array_intersect_assoc($array1,$array2)) > 0);
bool(false)

答案 2 :(得分:0)

foreach( $array as $key => $value ){
  if (array_key_exists($key, $array1)) {
    echo $array[$key] == $array1[$key];
  }
}

我认为如果我在尝试访问哈希中不存在的密钥时错误地将其视为php错误,则必须检查密钥存在。