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

    截图:

  • 相关阅读:
    用DOS把一个文件夹下的所有文件名打印到txt文件里
    多线程时的CreateDispatch问题
    [转载]惟楚有才
    [转] 数学专业参考书整理推荐
    大整数处理类(cpp文件)
    [转]英文文献检索
    大整数处理类(头文件)
    国外遥感GIS期刊整理(转)
    [转载]Hibernate中No row with the given identifier exis
    在武汉,总有那么一个词~~~
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8990118.html
Copyright © 2020-2023  润新知