我有两个数组。
$阵列1:
Array (
[0] => Array (
[time] => 100
[text] => Hello
)
[1] => Array (
[time] => 200
[text] => World!
)
[3] => Array (
[time] => 300
[text] => Array1's There
)
)
和更多...
$古:
Array (
[0] => Array (
[time] => 50
[text] => Hello
)
[1] => Array (
[time] => 150
[text] => World!
)
[3] => Array (
[time] => 300
[text] => Array2's There
)
)
和更多 ...
$ desiredResult:
Array (
[0] => Array (
[time] => 50
[text] => Hello
)
[1] => Array (
[time] => 100
[text] => Hello
)
[2] => Array (
[time] => 150
[text] => World
)
[3] => Array (
[time] => 200
[text] => World
)
[4] => Array (
[time] => 300
[text] => Array1's There
)
[5] => Array (
[time] => 300
[text] => Array2's There
)
)
我需要时间的数值合并两个数组,如果时间的价值是相同的,数组1的数据第一。
下面的代码,你会得到你想要的结果。
$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
和maximum
算的,最后一个参数是定义array has maximum value
,并从该数组提取所有剩余值的final array
。