在編程中查手冊是少不了的,所以要會學著使用已有的東西,就如PHP中的數組處理函數已經有排序函數了,為什麼還要在寫東西是費著勁去寫冒泡或者堆排或者快排呢。
編程是間接的過程,也是重用的過程,要寫出好的代碼是少不了設計模式來做支撐的,可能對初學者來說學習設計模式有些吃力(就像我當初看設計模式時,真是有點費勁),不過等你的代碼量有一定積累時,在研究設計模式時,感覺設計模式真的挺有用的,能幫助你寫出漂亮的代碼。說著說著有點跑偏了,還是來總結一下php中對數組操作的常用函數吧。
以下總結的數組常用的函數,可能有些讀者會感覺有些少,眾人拾柴火焰高嗎,如果感覺還有其他常用的數組處理函數,給個評論留下呗,不要吝啬自己的知識嘛,和別人分享東西不是一件很快樂的東西嗎。還有,下面的代碼出自本人之手,不過是兩年前寫的代碼了,歡迎大家批評指正。
array_splice() 刪除數組中的指定元
array_splice(數組名,從前往後刪的個數,new一個數組的大小);沒有第三參數也就沒有返數組,沒有第三個參數時,第二個參數的意義為從前往後保留幾個
exp:
<?php $my_array=array( //建立數組 "hehe"=>"haha", "A"=>"lu", "lu"=>"ge" ); $new=array_splice($my_array,1,3); //使用array_splice(數組名,從前往後刪的個數,new一個數組的大小); var_dump($new); ?>
結果:array(2) { ["A"]=> string(2) "lu" ["lu"]=> string(2) "ge" }
2、foreach()數組的遍歷
用法:foreach(數組 as 鍵名=>鍵值)或foreach(數組 as 鍵值)
exp:
<?php $my_array=array( //建立數組 "hehe"=>"haha", "A"=>"lu", "lu"=>"ge" ); foreach($my_array as $key=>$value) { echo $key."=>".$value."<br/>"; } ?>
輸出結果:
hehe=>haha A=>lu lu=>ge
3、數組的排序
(1)sort()和rsort() 按鍵值排序sort()從小到大,rsort()從大到小
sort () exp :
<?php $my_array=array(1,2,3,6,7,8,9,4,5);//建立數組 sort($my_array); foreach($my_array as $keys=>$value) { echo $keys."=>".$value."<br/>"; } ?>
輸出結果:
0=>1 1=>2 2=>3 3=>4 4=>5 5=>6 6=>7 7=>8 8=>9
rsort() exp:
<?php $my_array=array(1,2,3,6,7,8,9,4,5);//建立數組 rsort($my_array); foreach($my_array as $keys=>$value) { echo $keys."=>".$value."<br/>"; } ?>
輸出結果:
0=>9 1=>8 2=>7 3=>6 4=>5 5=>4 6=>3 7=>2 8=>1
(2).asort()和arsort()和上面的原理一樣,不過不改變鍵名和鍵值的對應關系
exp:
<?php $my_array=array(1,2,3,6,7,8,9,4,5);//建立數組 asort($my_array); foreach($my_array as $keys=>$value) { echo $keys."=>".$value."<br/>"; } ?>
輸出結果:
0=>1 1=>2 2=>3 7=>4 8=>5 3=>6 4=>7 5=>8 6=>9
(3)ksort()和krsort()是按鍵名的大小排序
4.數組的數學類函數
array_sum()計算數組的所有鍵值的和 count()計算元素的個數
exp:
<?php $my_array=array(1,2,3,6,7,8,9,4,5);//建立數組 echo array_sum($my_array); ?>
輸出結果:45
5.其他函數
array_unique() 去除數組中的相同元素
in_array()檢測一個值是否在數組中(返回true和false)
array_search()返回的是鍵或值,返回的是鍵值所對應的鍵名
shuffle()打亂原有的數組
<?php $my_array=array(1,2,3,6,7,8,9,4,5,5,5,5);//建立數組 array_unique($my_array);//去除數組中的相同元素 var_dump($my_array); echo "<br/>"; echo in_array(5,$my_array); echo "<br/>"; $new=array_search(6,$my_array);//返回的是鍵值所對應的鍵名 echo $new; ?>
輸出結果:
array(12) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(6) [4]=> int(7) [5]=> int(8) [6]=> int(9) [7]=> int(4) [8]=> int(5) [9]=> int(5) [10]=> int(5) [11]=> int(5) } 1 3
foreach (array_expression as $key => $value)
key()函數用來讀取目前指針所指向資料的索引值current()則是取得目前指針位置的內容資料
count()函數會傳回目標數組的長度值
數組指針的控制函數
pnext()、prev()、end()及 reset()
next()負責將指針向後移動,prev()負責將指針向前移動;end()會將指針指向數組中最後一個元素,而 reset()函數則會將目前指針無條件移至第一個索引位置。
in_array(mixed $needle, array $haystack[, bool $strict]);確定某個數組元素的存在與否。
array_search(),該函數返回相應的鍵名。array_key_exists()函數可以檢索給定的鍵名(索引)是否存在於數組中。
還有,如果需要 我可以給你 PPT
其實沒必要去到處搜羅所謂的“常用函數”,所謂常用是因人而異,某人經常用某函數,但並不代表你也一定會經常使用。php函數很多,常備php的幫助手冊是關鍵,遇到不熟的就查,查的次數多了,自然就變成“常用”了。
一般來說,字符串、數組、數據庫類的函數是相對來使用比較多的類別。
以下羅列了一下函數,僅供參考一閱。
============================================
//===============================時間日期===============================
//y返回年最後兩位,Y年四位數,m月份數字,M月份英文。d月份幾號數字,D星期幾英文
$date=date("Y-m-d");
//include,include_once.require,require_once
//require("file.php") 在PHP程序執行前就會先讀入require所指定引進的文件,如出現錯誤是致命的。
//include("file.php") 可以放在PHP程序的任何位置,PHP程序執行到時才讀入include指定引入的文件,如出現錯誤會提示
//===============================輸出打印===============================
//sprintf("%d","3.2") ;//只格式化,返回格式化後的字符串,不輸出。
//printf("%d","3.2") ;//即格式化,又輸出
//print("3.2") ;//只輸出
//echo "nihao","aa";//可以輸出多個字符串
//print_r(array("a","b","c"));//將數組的鍵值與元素依次顯示
//===============================常用字符串函數===============================
//獲取字符串長度,有多少個字符,空格也算
$str=" sdaf sd ";
$len=strlen($str);
//用第一個參數裡的字符串,把後面數組裡的每個元素連接起來,返回一個字符串。
$str=implode("-",array("a","b","c"));
//字符串分割方法,返回一個數組,用第一個參數裡的字符分割後面的字符串,指定字符的前後和之間都截取,如果指定字符在開頭或結尾則返回的數組開頭或結尾的元素為空字符串
//沒有分割到字符串就返回給數組對應元素一個空值。最後一個限制返回數組長度,可不限制,則一直分割下去。
$array=explode("a","asdd......余下全文>>