<?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', 'q', 'z'
)
));
- Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- array(9) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
NULL
[3]=>
NULL
[4]=>
NULL
[5]=>
NULL
[6]=>
NULL
[7]=>
string(1) "q"
[8]=>
string(1) "z"
}
- Output for 5.0.0 - 5.0.5
- Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/eFWYQ on line 2
Process exited with code 255. - Output for 4.4.2 - 4.4.9
- Parse error: syntax error, unexpected T_ARRAY, expecting ')' in /in/eFWYQ on line 2
Process exited with code 255. - Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
- Parse error: parse error, unexpected T_ARRAY, expecting ')' in /in/eFWYQ on line 2
Process exited with code 255. - Output for 4.3.2 - 4.3.4
- Parse error: parse error, expecting `')'' in /in/eFWYQ on line 2
Process exited with code 255.
preferences:
257.03 ms | 401 KiB | 420 Q