不确定如何解释清楚
我有两个数组,就像这样
$array1 = array('A1', 'A2', 'A3');
$array2 = array('B1', 'B2', 'B3');
我想通过在2个数组之间交替来创建一个数组..类似这样的
array('A1', 'B1', 'A2', 'B2', 'A3', 'B3');
还有什么叫做这种排序?
答案 0 :(得分:1)
$max = max(count($array1), count($array2));
$result = array();
for ($i = 0; $i < $max; $i++) {
if (count($array1) > $i) {
$result[] = $array1[$i];
}
if (count($array2) > $i) {
$result[] = $array2[$i];
}
}
答案 1 :(得分:0)
$result = array_merge($array1, $array2);
答案 2 :(得分:0)
假设数组长度相等(count($array1) == count($array2)
)
// Interleave elements from $array1 and $array2 into $result
$result = array();
for ($i = 0; $i < count($array1); $i++) {
$result[] = $array1[$i];
$result[] = $array2[$i];
}
var_dump($result);
答案 3 :(得分:0)
没有标准的PHP函数来执行您的要求。最接近的是:
<?php $array_merged = array_merge($array1, $array2, ...); ?>
以下是适合您的自定义功能:
<?php
function array_merge_zipped($array_a, $array_b){
$zipped = array();
if (is_array($array_a) && is_array($array_b)){
$a = 0;
foreach ($array_a as $value){ $zipped[$a] = $value; $a += 2; }
$b = 1;
foreach ($array_b as $value){ $zipped[$b] = $value; $b += 2; }
}
return $zipped;
}
?>
答案 4 :(得分:0)
$array1 = array('A1', 'A2', 'A3');
$array2 = array('B1', 'B2', 'B3');
$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($array1));
$mi->attachIterator(new ArrayIterator($array2));
$newArray = array();
foreach($mi as $details) {
$newArray[] = $details[0];
$newArray[] = $details[1];
}