A-A+
PHP二维数组的合并方法
今年做得最二的一个项目,两个数据表,需要将数据同时展示出来,从一开始的项目开发设计就做错了,因为是多人同时开发的项目,所以如果去大改的话,可能改动较大,所以在前台也只能合并两个数据表的数据了,最主要的还是两个数据表没有任何字段的关联,所以就只能想出一个办法,先循环出第一个表的数据,生成第一个二维数组,然后循环出第二个表的数据,生成第二个二维数组。然后再将两个二维数组合并同时输出。
例子如下:
$a = array(array("1","2"),array("3","4"));
$b = array(array("a","b"),array("c","d"));
两个从数据库中循环出来的内容,直接使用 array_merge 函数即可将其合并,如下:
$c = array_merge($a,$b);
print_r($c);
打印出来的结果就是:
- Array
- (
- [0] => Array(
- [0]=>1
- [1]=>2
- )
- [1] => Array(
- [0]=>3
- [1]=>4
- )
- [2] => Array(
- [0]=>a
- [1]=>b
- )
- [3] => Array(
- [0]=>c
- [1]=>d
- )
- )
使用函数合并是再简单不过的方法了,也便于理解,这种合并的方法,就是将 $a 数组追加到 $b 数组之后,形成一个新的二维数组。
还有一种合并的方式,就是通过 foreach 循环来合并数组,如下:
- $a = array(array("1","2"),array("3","4"));
- $b = array(array("a","b"),array("c","d"));
- foreach($a as $key=>$vo){
- $list[] = array_merge($vo,$b[$key]);
- }
- print_r($list);
打印出来的结果如下:
- Array
- (
- [0]=>Array
- (
- [0]=>1
- [1]=>2
- [2]=>a
- [3]=>b
- )
- [1]=>Array
- (
- [0]=>1
- [1]=>2
- [2]=>a
- [3]=>b
- )
- )
看看这两种有什么区别,第一种是直接追加,第二种的结果是融合,使用该方法之后,就是在A数组中插入了B数组,看各种需要吧。
最后将两个表的数据合并成一个二维数组之后,需要重新改变一下数组键值,也就是从 0 开始,直接使用 array_values() 函数即可。