微信扫一扫打赏支持

php实现合并多个数组

php实现合并多个数组

一、总结

1、就是想c++和java里面合并数组那么简单,就是把多个数组的值赋值个一个啊,很简单 

 

二、代码

合并多个数组,不用array_merge(),题目来于论坛。

思路:遍历每个数组,重新组成一个新数组。

代码一:

 1 <?php
 2 function t(){
 3   $c = func_num_args()-1;
 4   $a = func_get_args();
 5   //print_r($a);
 6   for($i=0; $i<=$c; $i++){
 7     if(is_array($a[$i])){
 8       for($j=0; $j<count($a[$i]); $j++){
 9         $r[] = $a[$i][$j];
10       }
11     } else {
12       die('Not a array!');
13     }
14   }
15   return $r;
16 }
17 //test
18 print_r(t(range(1,4),range(1,4),range(1,4)));
19 echo '<br/>';
20 $a = array_merge(range(1,4),range(1,4),range(1,4));
21 print_r($a);

1、传参不接收参数方式:第18、2行,就是php传过去的参数不一定要严格接收,可以不接收,就是实参和形参可以不一一对应,和js很像,和c++和java不像

2、在函数内部接收参数的个数(func_num_args()):第3行,见名知意,中间是num,肯定是连字符连接啊

3、在函数的内部接收参数(func_get_args()):第4行,见名知意,中间是get

4、判断是否为数组(is_array()):可以类推出判断字符串,判断整数啊,等等,就是is_的方式

5、中断程序(die,可带参数):有点像c++和java里面的break

 

代码二:

 1 //合并多个数组,不用array_merge()
 2 public function myMerge(){
 3     $c = func_num_args();
 4     $a = func_get_args();
 5     $ans=array();
 6     for ($i=0; $i <$c ; $i++) { 
 7         if (is_array($a[$i])) {
 8             for ($j=0; $j < count($a[$i]); $j++) { 
 9                 $ans[]=$a[$i][$j];
10             }
11         }else{
12             die("is not array");
13         }
14     }
15     dump($ans);
16 }
17 
18 public function myMergeDemo(){
19     $this->myMerge(range(1, 4),range(1, 4),range(1, 4));
20     dump(array_merge(range(1, 4),range(1, 4),range(1, 4)));
21 }

1、二维数组访问方式($a[][]):日常$a[][]方式,和c++和java一样,php里面数组只是二维数组初始化有点和别的不一样,其它都差不多

 

截图:

 

posted @ 2018-05-04 12:48  范仁义  阅读(2877)  评论(0编辑  收藏  举报