如何按顺序混合数组值?

时间:2013-08-27 05:37:20

标签: php arrays

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

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

结果应为:

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

谢谢。

3 个答案:

答案 0 :(得分:1)

这可以为您提供所需的内容

$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"
}

答案 1 :(得分:0)

如果两个数组具有相同数量的元素,则可以使用array_walkarray_combine来创建所需内容。

$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 ";'));

答案 2 :(得分:-1)

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