PHP 有一个array_intersect() 函数可以做到这一点。例如,ypo可以将以下代码放入PHPFiddle进行测试:
<?php
$array1 = array('ace', 'one', 'five', 'nine', 'elephant');
$array2 = array('elephant', 'seven', 'ace', 'jack', 'queen');
print_r($array1); print('<br>');
print_r($array2); print('<br>');
print_r(array_intersect($array1, $array2)); print('<br>');
?>
然后你会看到它给了你想要的东西(重新格式化以提高可读性):
Array ( [0] => ace
[1] => one
[2] => five
[3] => nine
[4] => elephant )
Array ( [0] => elephant
[1] => seven
[2] => ace
[3] => jack
[4] => queen )
Array ( [0] => ace
[4] => elephant )
请注意,这实际上并没有在结果中为您提供连续键,这些键似乎来自给array_intersect() 的第一个数组。如果获得连续索引数组很重要,则可能需要后处理步骤来调整它。这样的事情应该是一个好的开始(修改原始小提琴以使用连续索引):
<?php
$array1 = array('ace', 'one', 'five', 'nine', 'elephant');
$array2 = array('elephant', 'seven', 'ace', 'jack', 'queen');
print_r($array1); print('<br>');
print_r($array2); print('<br>');
$array3 = array();
foreach (array_intersect($array1, $array2) as $val) {
array_push($array3, $val);
}
print_r($array3); print('<br>');
?>