<?php
function mergeArray(array $arr1, array $arr2) {
$keysStats = array();
foreach ($arr1 as $index => $key) {
$keysStats[$key] = array(
'arr1' => $index,
'arr2' => null
);
}
foreach ($arr2 as $index => $key) {
if (!array_key_exists($key, $keysStats)) {
$keysStats[$key] = array(
'arr1' => null,
'arr2' => $index
);
} else {
$keysStats[$key]['arr2'] = $index;
}
}
$allKeys = array_keys($keysStats);
sort($allKeys);
$merged = array();
foreach ($allKeys as $key) {
if (is_null($keysStats[$key]['arr2'])) {
$merged[] = null;
} else {
$merged[] = $arr2[$keysStats[$key]['arr2']];
}
}
return $merged;
}
var_dump(mergeArray(
array(
'a', 'b', 'c', 'd', 'e', 'f', 'g'
),
array(
'a', 'b', 'z', 'q'
)
));
preferences:
38.52 ms | 402 KiB | 5 Q