В PHP есть функция array_intersect(), которая может это сделать. Например, вы можете поместить следующий код в 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>');
?>
person
paxdiablo
schedule
06.08.2018