С кодом ниже вы получите желаемый результат.
$finalArray = array();
if(count($array1) == count($array2)){
for ($icount = 0; $icount < count($array1); $icount++) {
if( ($array1[$icount] < $array2[$icount]) || ($array1[$icount] == $array2[$icount])){
$finalArray[] = $array1[$icount];
$finalArray[] = $array2[$icount];
} else if($array1[$icount] > $array2[$icount]){
$finalArray[] = $array2[$icount];
$finalArray[] = $array1[$icount];
}
}
}
Также я создал функцию, которая может дать вам результат, если какой-либо массив содержит больше значения, чем другой массив.
function mapArray($array1, $array2, $minCount, $maxCount, $maxCountFrom = ''){
for ($icount = 0; $icount < $minCount; $icount++) {
if( ($array1[$icount] < $array2[$icount]) || ($array1[$icount] == $array2[$icount])){
$finalArray[] = $array1[$icount];
$finalArray[] = $array2[$icount];
} else if($array1[$icount] > $array2[$icount]){
$finalArray[] = $array2[$icount];
$finalArray[] = $array1[$icount];
}
}
if(!empty($maxCountFrom)){
if($maxCountFrom == '1'){
for ($jcount = $icount; $jcount < $maxCount; $jcount++) {
$finalArray[] = $array1[$jcount];
}
} else if($maxCountFrom == '2'){
for ($jcount = $icount; $jcount < $maxCount; $jcount++) {
$finalArray[] = $array2[$jcount];
}
}
}
return $finalArray;
}
$array1Count = count($array1);
$array2Count = count($array2);
if($array1Count > $array2Count){
$result = mapArray($array1, $array2, $array2Count, $array1Count, '1');
} elseif($array1Count < $array2Count){
$result = mapArray($array1, $array2, $array1Count, $array2Count, '2');
} elseif($array1Count == $array2Count){
$result = mapArray($array1, $array2, $array2Count, $array2Count);
}
В этой функции вы можете передать 2 array
, count of the both array
на minimum
count и maximum
count, а последний параметр - определить, какой array has maximum value
и из этого массива извлекают все оставшиеся значения в final array
.