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