深入學習PHP數(shù)組函數(shù)使用方法
PHP數(shù)組函數(shù)還是比較常用的,于是我研究了一下PHP數(shù)組函數(shù),在這里拿出來和大家分享一下,希望對大家有用。今天我們學習PHP數(shù)組函數(shù),數(shù)組是一種數(shù)據(jù)類型,它的使用頻率相當高,學會處理數(shù)組會讓你做網站時得心應手。
#T#舉個例子:你的網站數(shù)據(jù)庫里存有大里的文章,現(xiàn)在你想在一個頁面上顯示20條娛樂新聞的標題,這20條標題從數(shù)據(jù)庫里取出來后你想用20個變量表示嗎?我想你不會這么笨吧,那么用什么變量能完全接收這20條數(shù)據(jù)呢?這就要用到數(shù)組變量。什么是數(shù)組呢?數(shù)組實際上是一個數(shù)據(jù)集合,相當于是一個數(shù)據(jù)容器,很多數(shù)據(jù)存放在里面,我們可以按一定方法存進去或取出來,還可以對它里面的數(shù)據(jù)進行排序等各種操作,還可以檢查里面有沒有我們想要的數(shù)據(jù)等等。
1.array_multisort()對多個數(shù)組或多維數(shù)組進行排序可以用來一次對多個數(shù)組進行排序或者根據(jù)某一維對多維數(shù)組進行排序。排序時保留原有的鍵名關聯(lián),實現(xiàn)的功能和SQL中的ORDERBY差不多。
- $ar1=array("10",100,100,"a");
- $ar2=array(1,3,"2",1);
- array_multisort($ar1,$ar2);
- ?>
- //返回結果(保持了原來數(shù)組的關聯(lián)性)
- $ar1=Array([0]=>10[1]=>a[2]=>100[3]=>100)
- $ar2=Array([0]=>1[1]=>1[2]=>2[3]=>3)
- //實現(xiàn)學生成績排名
- $grade=array("score"=>array(70,95,70.0,60,"70"),
- "name"=>array("ZhangSan","LiSi","WangWu",
- "ZhaoLiu","LiuQi"));
- array_multisort($grade["score"],SORT_NUMERIC,SORT_DESC,
- //將分數(shù)作為數(shù)值,由高到低排序
- $grade["name"],SORT_STRING,SORT_ASC);
- //將名字作為字符串,由小到大排序
- ?>
- //輸出結果
- array(
- 'score'=>
- array(
- 0=>95,
- 1=>'70',
- 2=>70,
- 3=>70,
- 4=>60,
- ),
- 'name'=>
- array(
- 0=>'LiSi',
- 1=>'LiuQi',
- 2=>'WangWu',
- 3=>'ZhangSan',
- 4=>'ZhaoLiu',
- ),
- )
2.array_rand()和shuffle(),一個是從數(shù)組中隨機的取出一個或多個值,另一個是將數(shù)組中的值的順序打亂,然后再可以從中取出值,它們都實現(xiàn)從數(shù)組中隨機取出數(shù)據(jù)的功能,可以用于實現(xiàn)諸如抽獎之類的功能。
3.array_reduce()將回調函數(shù)function迭代地作用到input數(shù)組中的每一個單元中,從而將數(shù)組簡化為單一的值。如果指定了可選參數(shù)initial,該參數(shù)將被當成是數(shù)組中的***個值來處理,或者如果數(shù)組為空的話就作為最終返回值。
- <?php
- functionrsum($v,$w){
- $v+=$w;
- return$v;
- }
- functionrmul($v,$w){
- $v*=$w;
- return$v;
- }
- $a=array(1,2,3,4,5);
- $x=array();
- //實現(xiàn)array_sum()功能
- $b=array_reduce($a,"rsum");//115=1+2+3+4+5
- $c=array_reduce($a,"rmul",10);//11200=1*2*3*4*5*10
- $d=array_reduce($x,"rsum",1);//1
- ?>
這個函數(shù)可以實現(xiàn)求一個數(shù)組的和(積,差等功能)