如何检查匹配的键值对
How to check for matching key value pairs
我有几组带有键值对的数组:
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 1, 'yellow' => 7, 'cyan' => 8);
如何检查两个数组是否同时包含匹配的键和值?我想设置一个条件,如果 $array1
和 $array2
有一对匹配 blue=>1
那么我想做点什么?
遍历 $array1
并检查 $array2
的值是否相同:
foreach($array1 as $i=>$val){
if($array2[$i]==$val)
//do stuff
}
您可以使用 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)
foreach( $array as $key => $value ){
if (array_key_exists($key, $array1)) {
echo $array[$key] == $array1[$key];
}
}
如果我没记错的话,我想你必须检查密钥是否存在,因为 php 在尝试访问散列中不存在的密钥时出错。
我有几组带有键值对的数组:
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 1, 'yellow' => 7, 'cyan' => 8);
如何检查两个数组是否同时包含匹配的键和值?我想设置一个条件,如果 $array1
和 $array2
有一对匹配 blue=>1
那么我想做点什么?
遍历 $array1
并检查 $array2
的值是否相同:
foreach($array1 as $i=>$val){
if($array2[$i]==$val)
//do stuff
}
您可以使用 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)
foreach( $array as $key => $value ){
if (array_key_exists($key, $array1)) {
echo $array[$key] == $array1[$key];
}
}
如果我没记错的话,我想你必须检查密钥是否存在,因为 php 在尝试访问散列中不存在的密钥时出错。