php 數(shù)組合并根據(jù)分類重新合并
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-04-08 01:00:19 閱讀次數(shù):2828次
在php中如果是簡(jiǎn)單的數(shù)組合并有很多的方法,但是我今天要求是根據(jù)數(shù)組ID然后重新合并數(shù)組,是要根據(jù)分類來(lái)操作。
最簡(jiǎn)單的數(shù)組合并我們只要使用array_merge即可,array_merge()將兩個(gè)或多個(gè)數(shù)組的單元合并起來(lái),一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面,返回作為結(jié)果的數(shù)組。
數(shù)組鍵名為數(shù)字鍵名時(shí),要合并的兩個(gè)數(shù)組中有同名數(shù)字KEY的時(shí)候,使用array_merge()不會(huì)覆蓋掉原來(lái)的值,而使用“+”合并數(shù)組則會(huì)把最先出現(xiàn)的值作為最終結(jié)果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(注意:不是覆蓋而是保留最先出現(xiàn)的那個(gè)值),例子代碼如下:
- $array1 = array(1=>'0');
- $array2 = array(1=> "data");
- $result1 = $array2 + $array1;
- print_r($result);
- $result = $array1 + $array2 ;
- print_r($result);
- $result3 = array_merge($array2,$array1);
- print_r($result3);
- $result4 = array_merge($array1,$array2);
- print_r($result4);
- 輸出結(jié)果為:
- Array ( [1] => data )
- Array ( [1] => 0 )
- Array (
- [0] => data
- [1] => 0
- )
- Array
- (
- [0] => 0
- [1] => data
- )
當(dāng)相同數(shù)組鍵名為字符時(shí),“+”運(yùn)算符與鍵名為數(shù)字時(shí)一樣,但array_merge()此時(shí)會(huì)覆蓋掉前面相同鍵名的值。
例子代碼如下:
- $array1 = array('asd'=>'0');
- $array2 = array('asd' => "data");
- $result1 = $array2 + $array1;
- print_r($result);
- $result = $array1 + $array2 ;
- print_r($result);
- $result3 = array_merge($array2,$array1);
- print_r($result3);
- $result4 = array_merge($array1,$array2);
- print_r($result4);
-
-
-
-
-
-
-
講了這么多費(fèi)話,下面才是我要給各位朋友介紹的.例,根據(jù)分類字段進(jìn)行數(shù)組重組,代碼如下:
- <?php
-
- $arrar=array();
- $array[]=array('ItemID' => 110126866896,'CategoryID'=>111);
- $array[]=array('ItemID' => 120126866896,'CategoryID'=>112);
- $array[]=array('ItemID' => 130126866896,'CategoryID'=>113);
- $array[]=array('ItemID' => 140126866896,'CategoryID'=>114);
- $array[]=array('ItemID' => 150126866896,'CategoryID'=>115);
- $array[]=array('ItemID' => 160126866896,'CategoryID'=>116);
- $array[]=array('ItemID' => 170126866896,'CategoryID'=>117);
- $array[]=array('ItemID' => 118126866896,'CategoryID'=>111);
- $array[]=array('ItemID' => 121126866896,'CategoryID'=>112);
- $array[]=array('ItemID' => 132126866896,'CategoryID'=>113);
- $array[]=array('ItemID' => 143126866896,'CategoryID'=>114);
- $array[]=array('ItemID' => 154126866896,'CategoryID'=>115);
- $array[]=array('ItemID' => 165126866896,'CategoryID'=>116);
- $array[]=array('ItemID' => 176126866896,'CategoryID'=>117);
-
- $newArray=array();
- foreach($array as $val){
- $newArray[$val['CategoryID']][]=$val;
- }
-
-
- $array=null;
- unset($array);
- print_r($newArray);
- ?>
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)