經(jīng)驗之談PHP數(shù)組函數(shù)總結(jié)
這幾天在網(wǎng)上看了很多有關(guān)PHP數(shù)組函數(shù)的相關(guān)知識,覺得孔老夫子的“溫故而知新”果然不假,這里是我總結(jié)的一些經(jīng)驗,希望對大家有幫助。
#T#PHP中的數(shù)組實際上是一個有序圖,圖是一種把values映射到keys的類型。此類型在很多方面做了優(yōu)化,因此你可以把它當(dāng)成真正的數(shù)組來使用,或列表(矢量),散列表(是圖的一種實現(xiàn)),字典,集合,棧,隊列以及更多可能性。因為可以用另一個PHP數(shù)組作為值,也可以很容易地模擬樹。解釋這些結(jié)構(gòu)超出了本手冊的范圍,但對于每種結(jié)構(gòu)你至少會發(fā)現(xiàn)一個例子。要得到這些結(jié)構(gòu)的更多信息,我們建議你參考有關(guān)此廣闊主題的外部著作,以下特記下我的一些PHP數(shù)組函數(shù)體會:
1.將一個1維數(shù)組分割成2維數(shù)組array_chunk()
- $input_array=array('a','b','c','d','e');
- print_r(array_chunk($input_array,2));
2.比較2個數(shù)組,array_diff_assoc()或者array_diff(),如果返回值為空,表示兩個數(shù)組相同,否則就不同。
3.用一個函數(shù)來過濾數(shù)組中的數(shù)值array_filter()
- functionodd($var){
- return($var%2==1);
- }
- functioneven($var){
- return($var%2==0);
- }
- $arrayarray1=array("a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5);
- $arrayarray2=array(6,7,8,9,10,11,12);
- echo"Odd:\n";
- print_r(array_filter($array1,"odd"));
- echo"Even:\n";
- print_r(array_filter($array2,"even"));
- ?>
4.array_map()將回調(diào)函數(shù)作用到給定數(shù)組的單元上,它的參數(shù)可以是一個數(shù)組,也可以是多個數(shù)組,回調(diào)函數(shù)的參數(shù)必須要和調(diào)用它的參數(shù)相同。
- //單個參數(shù)的例子,將數(shù)組中的每個值,乘以它的3次方
- functioncube($n){
- return$n*$n*$n;
- }
- $a=array(1,2,3,4,5);
- $b=array_map("cube",$a);
- print_r($b);
- ?>
- //多個數(shù)組參數(shù)的例子
- functionshow_Spanish($n,$m){
- return"Thenumber$niscalled$minSpanish";
- }
- functionmap_Spanish($n,$m){
- returnarray($n=>$m);
- }
- $a=array(1,2,3,4,5);
- $b=array("uno","dos","tres","cuatro","cinco");
- $c=array_map("show_Spanish",$a,$b);
- print_r($c);
- $d=array_map("map_Spanish",$a,$b);
- print_r($d);
- ?>
- //輸出結(jié)果
- //printoutof$c
- Array
- (
- [0]=>Thenumber1iscalledunoinSpanish
- [1]=>Thenumber2iscalleddosinSpanish
- [2]=>Thenumber3iscalledtresinSpanish
- [3]=>Thenumber4iscalledcuatroinSpanish
- [4]=>Thenumber5iscalledcincoinSpanish
- )
以上就是有關(guān)PHP數(shù)組函數(shù)的相關(guān)總結(jié),大家要熟記啊。