• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php实现合并多个数组

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、总结

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里面数组只是二维数组初始化有点和别的不一样,其它都差不多

 

截图:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
phpartisandb:seed报错发布时间:2022-07-10
下一篇:
PHPheredoc用法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap