php 如何最简单的实现多个数组纵向合并?


不知道怎么写这个标题合适,暂时就叫 纵向合并吧,比如有多个数组:

   
  $arr1 = array('a','b','c','d','e');
  
$arr2 = array(1,2,3,4);
$arr3 = array(array('a1','b1'),array('a2','b2'=>array('b2a1')));
$arr4 = ....

数组个数不固定,并且数组的元素可以是任何类型的值(字符串,数字,数组..),每个数组的长度有可能不一样,如上就是 5,4,2,...;最重要的一点是: 如果某个数组的元素不存在将不会增加到数组中

如上合并后的结果为:

   
  Array
  
(
[0] => Array
(
[0] => a
[1] => 1
[2] => Array
(
[0] => a1
[1] => b1
)
)
[1] => Array
(
[0] => b
[1] => 2
[2] => Array
(
[0] => a2
[b2] => Array
(
[0] => b2a1
)
)
)
[2] => Array
(
[0] => c
[1] => 3
)
[3] => Array
(
[0] => d
[1] => 4
)
[4] => Array
(
[0] => e
)
)

趣味 php

edjason 12 years, 3 months ago
   
  function array_merge_2()
  
{
$arrays = func_get_args();
$result = array();

// loop available array
foreach($arrays as $array) {

if(is_array($array)) {
// Loop values
foreach($array as $key => $value)
{
$result[$key][] = $value;
}
}
}
return $result;
}
//示例
$arr1 = array('a','b','c','d','e');
$arr2 = array(1,2,3,4);
$arr3 = array(array('a1','b1'),array('a2','b2'=>array('b2a1')));
print_r(array_merge_2($arr1, $arr2,$arr3));

星星魔力。 answered 12 years, 3 months ago

Your Answer