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里面數組只是二維數組初始化有點和別的不一樣,其它都差不多

 

截圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM