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

    截图:

  • 相关阅读:
    vue项目常用
    centos7之关于时间和日期以及时间同步的应用
    nginx 配置 https
    nginx 转发 minio 服务
    MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。
    SpringCloud第三弹(Feign客户端)
    IDEA代码里的黄色提示
    H3C配置tftp参数,搭配WDS,windows部署服务器。
    手动为nextclou添加插件(Collabora Online 在线OFFICE)
    nextcloud集成LDAP登录
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8990118.html
Copyright © 2011-2022 走看看