如何按顺序混合数组值



我正在尝试混合数组值以按顺序显示:

$array_one = array('a','b','c');
$array_two = array('1','2','3','4','5');

结果应该是:

array('a','1','b','2','c','3','4','5');

谢谢。

这为您提供了所需的

$array_one = array('a','b','c');
$array_two = array('1','2','3','4','5');
$maxCount = max(array(count($array_one),count($array_two)));
$result = array();
for ($i=0; $i < $maxCount; $i++) {
  if (!empty($array_one[$i])) {
    $result[] = $array_one[$i];
  }
  if (!empty($array_two[$i])) {
    $result[] = $array_two[$i];
  }
}
var_dump($result);

输出

array(8) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "2"
  [4]=>
  string(1) "c"
  [5]=>
  string(1) "3"
  [6]=>
  string(1) "4"
  [7]=>
  string(1) "5"
}

如果两个数组都有相同数量的元素,则可以使用array_walk和array_component来创建所需的元素。

$array_one = array('a','b','c','d','e');
$array_two = array('1','2','3','4','5');
$combined_array = array_combine($array_one, $array_two);
array_walk($combined_array, create_function('$value, $key', 'echo "$key $value ";'));

Hi@andrei您首先找到两个数组的长度,为结果创建一个新数组,在内部循环中使用两个for循环,只需在新数组中分配值并递增循环。希望它能给你带来预期的结果。

最新更新