我有两个数组作为例子:
$array1 = ['ASD', 'Ep', 'Com'];
$array2 = [1=>'ASD', 2=>'bob', 3=>'Ep', 4=>'Jam', 5=>'Com'];
我想从$array2
中取出$array1
中有值的密钥。
所以在这种情况下,预期的输出是:
array(1, 3, 5)
我该怎么做?
答案 0 :(得分:5)
您应该可以使用array_intersect
。
$array1 = ['ASD', 'Ep', 'Com'];
$array2 = [1=>'ASD', 2=>'bob', 3=>'Ep', 4=>'Jam', 5=>'Com'];
$keys = array_keys(array_intersect($array2, $array1));
答案 1 :(得分:2)
您可以使用PHP内置函数in_array()
:
foreach($array2 as $key => $value) { // loop through $array2 values
if (in_array($value,$array1)) { // check if current value exists in $array1
$array3[] = $key; // assign key to $array3
}
}
print_r($array3); // outputs 'Array ( [0] => 1 [1] => 3 [2] => 5 )'
答案 2 :(得分:0)
您可以使用array_intersect($array1, $array2)
。 PHP Documentation
示例:
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_intersect($a1,$a2);
print_r($result);
退出将是:
Array
(
[a] => red
[b] => green
[c] => blue
)
您可以使用数组和关联数组或关联数组。