我試圖合併兩個配套陣列分揀結果以及在PHP中,這是我設法拿出代碼:配全合併兩個配套陣列
<?php
function assotAssortedArrays($a, $b){
if (empty($a)){
return $b;
}
if (empty($b)){
return $a;
}
if ($a[0] < $b[0]){
return array_merge($a[0],
array_merge(array_slice($a, 1, count($a)-1), $b));
} else {
return array_merge($b[0],
array_merge(array_slice($b, 1, count($b)-1), $a));
}
}
$a = array(1,2,3,4,5);
$b = array(3,4,5,6,7);
var_dump(assotAssortedArrays($a, $b));
的代碼不能正常工作,這是我得到的錯誤:
Warning: array_merge(): Argument #1 is not an array in D:\Web\a\sortArrays.php on line 14
基本上解釋是說,參數1這裏array_merge(array_slice($b, 1, count($b)-1), $a));
是不是和數組,但我已經做了print_r的所有元素,並說,他們是數組。我究竟做錯了什麼?
編輯,感謝Sam這是正確的代碼:
function mergeArrays($a, $b){
if (empty($a)){
return $b;
}
if (empty($b)){
return $a;
}
if ($a[0] < $b[0]){
$aux[] = $a[0];
return array_merge($aux, mergeArrays(array_slice($a, 1, count($a)), $b));
} else {
$aux[] = $b[0];
return array_merge($aux, mergeArrays(array_slice($b, 1, count($b)), $a));
}
}
切片是否可能爲空? – Liron