PHP編程過程中的數(shù)據(jù)的處理課件_第1頁
PHP編程過程中的數(shù)據(jù)的處理課件_第2頁
PHP編程過程中的數(shù)據(jù)的處理課件_第3頁
PHP編程過程中的數(shù)據(jù)的處理課件_第4頁
PHP編程過程中的數(shù)據(jù)的處理課件_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第8章數(shù)據(jù)的處理數(shù)據(jù)處理在PHP編程過程中有著重要的地位,因?yàn)楦鞣N操作說到底還是對數(shù)據(jù)的操作。例如,需要入庫的各種用戶信息、需要進(jìn)行比較的日期時間、需要計算的數(shù)值等等。而在PHP的系統(tǒng)函數(shù)中分別定義了專門的函數(shù)類別用于處理不同的數(shù)據(jù),如數(shù)學(xué)類函數(shù)、字符串類函數(shù)、數(shù)組類函數(shù)、日期時間類等。本章就來介紹,如何使用這些不同的系統(tǒng)函數(shù)對數(shù)據(jù)進(jìn)行處理。在本章中,將重點(diǎn)學(xué)習(xí)以下內(nèi)容:操作數(shù)值操作字符串操作數(shù)組操作日期時間第8章數(shù)據(jù)的處理數(shù)據(jù)處理在PHP編程過程中有著重要的地位8.1操作數(shù)值數(shù)值操作的應(yīng)用范圍比較廣泛,特別是制作專業(yè)性較強(qiáng)的Web應(yīng)用程序,如計算員工平均工資、執(zhí)行各種復(fù)雜的數(shù)據(jù)基礎(chǔ)繪圖、進(jìn)行各種不同進(jìn)制的轉(zhuǎn)換等。PHP系統(tǒng)函數(shù)中提供了math類函數(shù)專門用于處理各種數(shù)值操作,本節(jié)就來介紹各種數(shù)值的常見操作。8.1操作數(shù)值數(shù)值操作的應(yīng)用范圍比較廣泛,特別是制作專業(yè)8.1.1求絕對值PHP中提供了用于求絕對值的函數(shù)abs(),使用該函數(shù)可以求一個數(shù)的絕對值。該函數(shù)的語法格式如以下代碼所示:numberabs(mixed$number)該函數(shù)的參數(shù)$number為指定的數(shù)值,既可以是整型數(shù)也可以是浮點(diǎn)數(shù)。函數(shù)將會根據(jù)求絕對值規(guī)則返回指定數(shù)的絕對值。如果參數(shù)number是float,則返回的類型也是float,否則返回integer。8.1.1求絕對值PHP中提供了用于求絕對值的函數(shù)abs8.1.1求絕對值8.1.1求絕對值8.1.2小數(shù)取整在實(shí)際操作時,經(jīng)常遇到需要將小數(shù)轉(zhuǎn)變?yōu)檎麛?shù)的情況。PHP中提供了多種“小數(shù)取整”的方法。分別通過不同的函數(shù)來實(shí)現(xiàn),本小節(jié)來介紹各種小數(shù)取整的方法。1.進(jìn)一法取整2.舍去法取整3.四舍五入法取整8.1.2小數(shù)取整在實(shí)際操作時,經(jīng)常遇到需要將小數(shù)轉(zhuǎn)變?yōu)?.1.3角度與弧度轉(zhuǎn)化角度與弧度轉(zhuǎn)化是常用的數(shù)學(xué)操作之一。因?yàn)橥ǔH藗兯褂玫念愋褪墙嵌?,而一些三角函?shù)卻需要使用弧度來作為參數(shù),所以需要進(jìn)行角度與弧度的轉(zhuǎn)化。PHP中就專門提供了一類函數(shù)來執(zhí)行角度與弧度的轉(zhuǎn)化操作。1.角度轉(zhuǎn)化為弧度2.弧度轉(zhuǎn)化為角度8.1.3角度與弧度轉(zhuǎn)化角度與弧度轉(zhuǎn)化是常用的數(shù)學(xué)操作之8.1.3角度與弧度轉(zhuǎn)化8.1.3角度與弧度轉(zhuǎn)化8.1.4次方與平方根求次方與求平方根,也有著廣泛的用途,PHP中也提供了實(shí)現(xiàn)這兩項(xiàng)功能的函數(shù)。1.求次方2.求平方根8.1.4次方與平方根求次方與求平方根,也有著廣泛的用途8.1.5求三角值三角類函數(shù)通常包括:正弦、余弦、正切、余切、正割、余割以及反正弦、反余弦、反正切、反余切、反正割、反余割等。PHP中提供了與這些數(shù)學(xué)表述幾乎一致的函數(shù)。8.1.5求三角值三角類函數(shù)通常包括:正弦、余弦、正切、8.1.6求最值求一組數(shù)中的最大值或者最小值也是比較常用的操作之一。如求一個班級中的英語考試最高成績、又比如評委評分時需要去掉的最低分等。PHP中也提供了求最大值與最小值的函數(shù)。1.求最大值函數(shù)2.求最小值函數(shù)8.1.6求最值求一組數(shù)中的最大值或者最小值也是比較常用8.1.5求三角值8.1.5求三角值8.1.7求隨機(jī)數(shù)隨機(jī)數(shù)在Web應(yīng)用程序也有應(yīng)用的舞臺,最常見的就是輸入一個隨機(jī)的驗(yàn)證碼。PHP中的隨機(jī)數(shù)處理函數(shù),也提供了獲取隨機(jī)數(shù)的功能。使用隨機(jī)數(shù)函數(shù)rand()即可實(shí)現(xiàn)這樣的效果,該函數(shù)的語法格式如以下代碼所示。intrand([intmin,intmax])該函數(shù)有兩個可選參數(shù):min與max都為數(shù)值型,函數(shù)將會返回min與max之間的一個隨機(jī)數(shù)值。如果不帶這兩個參數(shù),函數(shù)將返回0到系統(tǒng)支持最大數(shù)值之間的一個偽隨機(jī)數(shù)。注意rand(min,max)返回的隨機(jī)數(shù),包含min與max即隨機(jī)數(shù)也可能是最小值或者最大值。8.1.7求隨機(jī)數(shù)隨機(jī)數(shù)在Web應(yīng)用程序也有應(yīng)用的舞臺,8.1.7求隨機(jī)數(shù)8.1.7求隨機(jī)數(shù)8.1.8進(jìn)制轉(zhuǎn)換進(jìn)制的概念在每種編程語言中都有涉及。十進(jìn)制是人們?nèi)粘L幚頂?shù)值時所使用的進(jìn)制,這種進(jìn)制最為人們熟悉與理解,除此之外還有二進(jìn)制、八進(jìn)制與十六進(jìn)制等。這些進(jìn)制通常用于計算機(jī)語言直接處理數(shù)據(jù)。所以數(shù)值在不同進(jìn)制之間的轉(zhuǎn)換就成為數(shù)據(jù)操作的一個重要內(nèi)容。本小節(jié)來介紹在PHP中如何實(shí)現(xiàn)進(jìn)制的轉(zhuǎn)換操作。1.十進(jìn)制與二進(jìn)制轉(zhuǎn)換2.十進(jìn)制與八進(jìn)制轉(zhuǎn)換3.十進(jìn)制與十六進(jìn)制轉(zhuǎn)換4.任意進(jìn)制之間的轉(zhuǎn)換8.1.8進(jìn)制轉(zhuǎn)換進(jìn)制的概念在每種編程語言中都有涉及。十8.1.8進(jìn)制轉(zhuǎn)換8.1.8進(jìn)制轉(zhuǎn)換8.1.9其他數(shù)值處理函數(shù)前面8小節(jié)介紹了幾種常用的數(shù)值處理函數(shù),除了這些函數(shù)之外,PHP數(shù)學(xué)函數(shù)中還包括其他幾個不太常用的數(shù)值處理函數(shù),在這里作下簡要的介紹。1.計算e的指數(shù)2.求余數(shù)函數(shù)3.計算直角三角形斜邊長4.以10為底的對數(shù)5.自然對數(shù)6.獲取圓周率8.1.9其他數(shù)值處理函數(shù)前面8小節(jié)介紹了幾種常用的數(shù)值8.2操作字符串字符串在數(shù)據(jù)操作中也占有相當(dāng)大的比重,因?yàn)楹芏嗟臄?shù)據(jù)是以字符串來作為載體的。比如:注冊用戶的用戶名、密碼、聯(lián)系方式、地址等等。所有這些內(nèi)容都需要使用字符串來對其進(jìn)行操作。針對這種情況,PHP中也提供了大量的字符串操作函數(shù)用于處理字符串,本節(jié)分別來為讀者介紹。8.2操作字符串字符串在數(shù)據(jù)操作中也占有相當(dāng)大的比重,因8.2.1字符串輸出字符串的輸出操作是所有字符串操作中最為基本的一類操作,PHP中提供了很多用于實(shí)現(xiàn)字符串輸出的函數(shù)(或者語句)本小節(jié)就先來介紹字符串的輸出操作。1.最常見的輸出:echo2.print輸出函數(shù)3.格式化輸出字符串8.2.1字符串輸出字符串的輸出操作是所有字符串操作中最8.2.2字符串長度求字符串長度是使用字符串的基礎(chǔ)。PHP中提供了用于獲取字符串長度的函數(shù):strlen(),該函數(shù)的語法格式如下所示:intstrlen(string$string)以上代碼中,參數(shù)$string是需要獲取長度的字符串,執(zhí)行該函數(shù)將以數(shù)值形式返回指定的字符串的長度。8.2.2字符串長度求字符串長度是使用字符串的基礎(chǔ)。PH8.2.3字符串截取字符串截取操作,是最常用到的字符串操作之一,PHP中也提供了用于實(shí)現(xiàn)字符串截取的功能。通過函數(shù):substr()即可實(shí)現(xiàn)字符串截取操作,該函數(shù)的語法格式如以下代碼所示:stringsubstr(string$string,int$start[,int$length])以上代碼中$string為指定的需要進(jìn)行截取操作的字符串,參數(shù)$start為進(jìn)行截取所開始的位置,以數(shù)值表示;可選參數(shù)$length為指定的截取的長度也以數(shù)值表示,如果省略該參數(shù)則從指定位置截到最后。執(zhí)行該函數(shù)將按照指定的位置及長度返回一個新的字符串。需要注意的是,如果參數(shù)$start為負(fù)數(shù)則從倒數(shù)第幾個位置開始截??;如果參數(shù)$length為負(fù)數(shù)則為字符串末尾需要保留的長度。8.2.3字符串截取字符串截取操作,是最常用到的字符串操8.2.3字符串截取8.2.3字符串截取8.2.4字符串替換字符串替換操作是最常用的字符串操作之一,在實(shí)際編程過程中,出于某種特殊要求,需要將字符串中的某些字符替換為其他字符。如用戶互動程序中對用戶輸入的內(nèi)容中的敏感或者違法內(nèi)容進(jìn)行過濾。PHP中提供了兩個用于實(shí)現(xiàn)字符串替換功能的函數(shù),下面分別為讀者介紹。1.轉(zhuǎn)換字符串中的某些字符2.將字符串中一部分替換為另一字符串3.將字符串中所有指定字符進(jìn)行轉(zhuǎn)換8.2.4字符串替換字符串替換操作是最常用的字符串操作之8.2.4字符串替換8.2.4字符串替換8.2.5字符串分割使用PHP的字符串分割函數(shù):explode()可以將字符串按照指定規(guī)則分割為幾個字符串,結(jié)果以數(shù)組的形式出現(xiàn)。該函數(shù)的語法格式如以下代碼所示:arrayexplode(string$separator,string$string[,int$limit])該函數(shù)有兩個必選參數(shù)與一個可選參數(shù):參數(shù)$separator為執(zhí)行分割操作的字符串的一個子串或者叫分割標(biāo)記;參數(shù)$string為目標(biāo)字符串;可選參數(shù)指定最多返回的數(shù)組元素個數(shù)。執(zhí)行函數(shù)將把字符串按照分割標(biāo)記分割為數(shù)組。8.2.5字符串分割使用PHP的字符串分割函數(shù):expl8.2.5字符串分割8.2.5字符串分割8.2.6字符串的比較在PHP中,不僅數(shù)值、數(shù)組可以比較大小字符串也有大小的區(qū)分。比較字符串的大小需要使用專門的字符串比較函數(shù)來實(shí)現(xiàn)。1.不區(qū)分大小寫比較2.區(qū)分大小寫比較8.2.6字符串的比較在PHP中,不僅數(shù)值、數(shù)組可以比較8.2.7字符串的大小寫對英文字符串進(jìn)行操作時,大小寫的轉(zhuǎn)換問題就成為字符串操作的重要內(nèi)容之一。PHP中也為字符串的大小寫轉(zhuǎn)換提供了一組系統(tǒng)函數(shù)。本小節(jié)就來分別介紹這些大小寫轉(zhuǎn)換類函數(shù)。1.將字符串中所有內(nèi)容轉(zhuǎn)換為大寫stringstrtoupper(string$str)2.將字符串中所有內(nèi)容轉(zhuǎn)換為小寫stringstrtolower(string$str)3.將字符串的首字母轉(zhuǎn)換為大寫stringucfirst(string$str)4.將字符串的每個單詞的首字母轉(zhuǎn)換為大寫stringucwords(string$str)8.2.7字符串的大小寫對英文字符串進(jìn)行操作時,大小寫的8.2.7字符串的大小寫8.2.7字符串的大小寫8.2.8字符串與ASCII碼在實(shí)際編程的過程中有時也需要將字符轉(zhuǎn)換為ASCII碼,或者反過來將ASCII碼轉(zhuǎn)化為其對應(yīng)的字符。在PHP的字符串操作類函數(shù)中也提供了將字符與其對應(yīng)的ASCII碼進(jìn)行轉(zhuǎn)換的函數(shù)。本小節(jié)來介紹這樣的函數(shù)。1.將字符轉(zhuǎn)換為ASCII碼2.返回ASCII碼所對應(yīng)的字符8.2.8字符串與ASCII碼在實(shí)際編程的過程中有時也需8.2.8字符串與ASCII碼8.2.8字符串與ASCII碼8.2.9轉(zhuǎn)換HTML特殊字符在用戶互動程序中,需要對用戶的輸入內(nèi)容進(jìn)行過濾。因?yàn)槿绻脩糨斎雰?nèi)容中含有HTML特殊字符將會對程序的運(yùn)行帶來一定的影響,甚至于別有用心的用戶可以在HTML代碼中混合JavaScript代碼可以造用用戶秘密的丟失。而在PHP字符串有專門用處理于含有HTML特殊字符的函數(shù)。本節(jié)就這些函數(shù)為讀者作介紹。1.使用htmlentities()進(jìn)行轉(zhuǎn)換2.使用htmlspecialchars()8.2.9轉(zhuǎn)換HTML特殊字符在用戶互動程序中,需要對用8.2.9轉(zhuǎn)換HTML特殊字符8.2.9轉(zhuǎn)換HTML特殊字符8.2.10字符串查找在PHP中還可以執(zhí)行字符串查找操作,即在一個字符串中查找另一個字符串出現(xiàn)的位置。支持該操作的函數(shù)為:strpos(),該函數(shù)的語法格式如以下代碼所示。intstrpos(string$haystack,mixed$needle[,int$offset])以上代碼中參數(shù)$haystack為需要進(jìn)行查找的字符串,以一個字符串型變量表示;參數(shù)$needle為查找的目標(biāo)字符串;$offset為可選參數(shù),該函數(shù)指定開始查找的偏移量,其默認(rèn)值為0。該函數(shù)將返回第一個找到的位置,如果找不到,函數(shù)將會返回FALSE。8.2.10字符串查找在PHP中還可以執(zhí)行字符串查找操作8.2.10字符串查找8.2.10字符串查找8.2.11其他字符串處理函數(shù)除了前面幾小節(jié)所介紹的字符串處理函數(shù),PHP中還有一些其他不太常用的字符串操作函數(shù)。本節(jié)分別將這些函數(shù)為讀者作簡要介紹。1.返回字符串中所用字符的信息2.將字符串使用MD5加密3.翻轉(zhuǎn)字符串4.重復(fù)字符串8.2.11其他字符串處理函數(shù)除了前面幾小節(jié)所介紹的字符8.3操作數(shù)組前面兩節(jié)分別為讀者介紹了數(shù)值的處理與字符串的處理,而作為一種普通變量的集合,數(shù)組也有著非常廣泛的用途。這一節(jié)就來介紹在PHP中常用的數(shù)組操作的內(nèi)容。PHP的系統(tǒng)函數(shù)專門提供了一類對數(shù)組進(jìn)行操作的函數(shù),通過這些函數(shù)可以對數(shù)組進(jìn)行各種需要的操作,本節(jié)將逐一作介紹。8.3操作數(shù)組前面兩節(jié)分別為讀者介紹了數(shù)值的處理與字符串8.3.1建立數(shù)組建立數(shù)組應(yīng)該是所有使用數(shù)組操作的基礎(chǔ),要使用一個數(shù)組首先就要創(chuàng)建數(shù)組。在PHP中創(chuàng)建數(shù)組所要使用到的函數(shù)就是:array(),該函數(shù)語法格式如以下代碼所示:arrayarrat([mixed$con])以上代碼中參數(shù)$con即為創(chuàng)建數(shù)組所需要的內(nèi)容,可以為多種形式。既可以是單個值來表示數(shù)組的值,也可以是以=>操作符連接的鍵值對。函數(shù)將會根據(jù)相應(yīng)的參數(shù)返回數(shù)組。8.3.1建立數(shù)組建立數(shù)組應(yīng)該是所有使用數(shù)組操作的基礎(chǔ),8.3.2數(shù)組長度與字符串一樣,數(shù)組也是有長度的概念的,數(shù)組的長度通常指數(shù)組所包含有元素的個數(shù)。使用PHP系統(tǒng)函數(shù)中的count()函數(shù),可以獲取數(shù)組的長度。該函數(shù)的語法格式如以下代碼所示:intcount(mixed$var[,int$mode])8.3.2數(shù)組長度與字符串一樣,數(shù)組也是有長度的概念的,8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)因?yàn)閿?shù)組是一個變量的集合,一個值在數(shù)組中可能會出現(xiàn)多次,所以檢查數(shù)組中每個值的出現(xiàn)次數(shù)也成為使用數(shù)組的一個重要操作。使用PHP數(shù)組函數(shù)array_count_values()即可返回由數(shù)組的值及其出現(xiàn)次數(shù)所生成的數(shù)組。該代碼的語法格式如下所示。arrayarray_count_values(array$input)以上代碼中參數(shù)$input為指定的需要進(jìn)行統(tǒng)計的數(shù)組的名稱,函數(shù)將會把數(shù)組中值出現(xiàn)的次數(shù)以數(shù)組的形式返回。8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)因?yàn)閿?shù)組是一個變量的集合,8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)8.3.4數(shù)組排序數(shù)組的排序操作在數(shù)組操作中也占用重要的地位,常規(guī)的編程語言需要用戶使用自定義的冒泡排序法及其類似的方法實(shí)現(xiàn)排序,而在PHP中則提供了一組用于執(zhí)行數(shù)組排序的系統(tǒng)函數(shù)。本小節(jié)就分別來介紹這些數(shù)組排序函數(shù)。1.使用arsort()函數(shù)排序2.使用asort()進(jìn)行排序3.使用krsort()函數(shù)排序4.使用ksort()進(jìn)行排序5.使用rsort()函數(shù)排序6.使用sort()進(jìn)行排序7.使用uasort()函數(shù)排序8.3.4數(shù)組排序數(shù)組的排序操作在數(shù)組操作中也占用重要的8.3.4數(shù)組排序8.3.4數(shù)組排序8.3.5移動數(shù)組指針在PHP的數(shù)組中有指針的概念,數(shù)組的指針即當(dāng)前數(shù)組所指向的值。PHP提供了用于返回和移動數(shù)組指針的函數(shù),使用該函數(shù)函數(shù)可以實(shí)現(xiàn)數(shù)組指針的移動與返回當(dāng)前指針等操作。該類函數(shù)共有以下幾個:current()函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻闹?,初始的?shù)組指向第一個值;each()函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻逆I值對,并將指針后移一位(常用于遍歷數(shù)組);end()函數(shù),將數(shù)組指針移動到最后一位;next()函數(shù),將數(shù)組指針后移一位;prev()函數(shù),將數(shù)組指針前移一位;reset()函數(shù),重置數(shù)組,即將數(shù)組指針移到第一位。8.3.5移動數(shù)組指針在PHP的數(shù)組中有指針的概念,數(shù)組8.3.5移動數(shù)組指針8.3.5移動數(shù)組指針8.3.6移除重復(fù)的值在操作數(shù)組的時候,出于某種要求,需要將數(shù)組中重復(fù)的值進(jìn)行移除。如果采用自定義的函數(shù)就需要遍歷函數(shù),并找出重復(fù)的值,再將重復(fù)的值進(jìn)行刪除。而在PHP中則預(yù)定義了這樣功能的系統(tǒng)函數(shù):array_unique(),該函數(shù)的語法格式如下所示:arrayarray_unique(array$array)以上代碼中,參數(shù)$array為一個指定的數(shù)組。該函數(shù)將會對數(shù)組進(jìn)行分析,移除數(shù)組中的重復(fù)的值,并返回一個沒有重復(fù)值的新的數(shù)組。8.3.6移除重復(fù)的值在操作數(shù)組的時候,出于某種要求,需8.3.6移除重復(fù)的值8.3.6移除重復(fù)的值8.3.7合并數(shù)組PHP支持對數(shù)組的合并操作,共有三種方法實(shí)現(xiàn)不同類型的數(shù)組合并。本小節(jié)就分別來介紹這些數(shù)組合并的方法。1.最簡單的數(shù)組合并方法2.使用array_merge()函數(shù)合并數(shù)組3.使用array_merge_recursive()函數(shù)遞歸合并數(shù)組8.3.7合并數(shù)組PHP支持對數(shù)組的合并操作,共有三種方8.3.7合并數(shù)組8.3.7合并數(shù)組8.3.8檢查數(shù)組中是否存在某個值在進(jìn)行數(shù)組處理需要判斷數(shù)組中是否包含某一個值時可以使用PHP中的數(shù)組函數(shù):in_array()。該函數(shù)的作用就是檢查數(shù)組中是否存在某個值,其語法格式如以下代碼所示:boolin_array(mixed$needle,array$haystack[,bool$strict])以上代碼中參數(shù)$needle為需要查找的值,可以是多種類型;參數(shù)$haystack為進(jìn)行查找的目標(biāo)數(shù)組;可選參數(shù)$strict為布爾值,指定在進(jìn)行檢查時是否也指定類型檢查,默認(rèn)值為FALSE即不進(jìn)行類型檢查。8.3.8檢查數(shù)組中是否存在某個值在進(jìn)行數(shù)組處理需要判斷8.3.8檢查數(shù)組中是否存在某個值8.3.8檢查數(shù)組中是否存在某個值8.3.9其他數(shù)組處理函數(shù)前面各小節(jié)為讀者介紹了PHP中常用的數(shù)組處理函數(shù)。除了這些函數(shù)之外,PHP中還有一些其他的數(shù)組處理函數(shù),本小節(jié)就選取其中有代表性的函數(shù)為讀者作簡單要介紹。1.計算數(shù)組的交集2.檢查數(shù)組是否有某個鍵名3.返回數(shù)組鍵名4.計算數(shù)組所有值的和5.返回數(shù)組所有值8.3.9其他數(shù)組處理函數(shù)前面各小節(jié)為讀者介紹了PHP中8.4操作日期時間日期時間的操作在PHP編程中也占有一席之地,比較常用的如:獲取當(dāng)前時間、獲取微秒數(shù)等等。本節(jié)來介紹一下在PHP中的日期與時間的操作。8.4操作日期時間日期時間的操作在PHP編程中也占有一席8.4.1使用前的準(zhǔn)備由于在PHP5新增加了時區(qū)選項(xiàng)這一設(shè)置,其默認(rèn)值為格林威治時間。而中國大部分所在時區(qū)為東八區(qū),如果采用默認(rèn)設(shè)置則使用的時間函數(shù)所獲取的結(jié)果就會比真實(shí)時間晚8個小時。所以在使用所有的日期時間函數(shù)進(jìn)行相關(guān)操作之前需要先對該選項(xiàng)進(jìn)行設(shè)置。其設(shè)置方法如下:(1)打開PHP的配置文件php.ini。(2)查找date.timezone選項(xiàng)并去掉行首的分號。(3)在“=”號后面加Asia/Shanghai,保存php.ini配置文件。(4)重啟Apache服務(wù)即可。經(jīng)過上述修改,使用日期時間函數(shù)即可獲取到正確的值。8.4.1使用前的準(zhǔn)備由于在PHP5新增加了時區(qū)選項(xiàng)這一8.4.2格式化日期時間使用PHP中的date()函數(shù),可以格式化一個本地時間或者日期。該函數(shù)是最常用的日期時間函數(shù)之一,其語法格式如以下代碼所示。stringdate(stringformat[,inttimestamp])以上代碼中參數(shù)format為指定需要返回的日期時間的格式,以字符串表示,可選參數(shù)timestamp為一個時間戳記,以數(shù)值表示,其默認(rèn)值為當(dāng)前時間戳記。執(zhí)行該函數(shù)會返回將整數(shù)timestamp按照給定的格式字串而產(chǎn)生的表示日期時間的字符串,如果沒有給出時間戳則使用本地當(dāng)前時間。8.4.2格式化日期時間使用PHP中的date()函數(shù),8.4.2格式化日期時間8.4.2格式化日期時間8.4.3取得日期時間信息使用PHP中的getdate()函數(shù)將會取得日期時間的相關(guān)信息。該函數(shù)的語法格式如下所示:arraygetdate([int$timestamp])該函數(shù)有一個可選參數(shù)$timestamp,該參數(shù)為一個日期時間戳記,如果省略該參數(shù),默認(rèn)將使用當(dāng)前時間。執(zhí)行函數(shù)將返回一個包含指定日期相關(guān)信息的關(guān)聯(lián)數(shù)組。8.4.3取得日期時間信息使用PHP中的getdate(8.4.4返回當(dāng)前Unix時間戳記使用time()函數(shù)可以獲取當(dāng)前的Unix時間戳記。該函數(shù)多用于先求得當(dāng)前時間戳記,然后再把相應(yīng)的結(jié)果應(yīng)用于如date()或者getdate()函數(shù)中。該函數(shù)不需要參數(shù),執(zhí)行函數(shù)將返回自從Unix紀(jì)元(格林威治時間1970年1月1日00:00:00)到當(dāng)前時間的秒數(shù)。8.4.4返回當(dāng)前Unix時間戳記使用time()函數(shù)可8.4.5將英文文本的日期時間描述解析為Unix時間戳函數(shù)strtotime()可以將使用英文描述的日期時間解析為Unix時間戳記,該函數(shù)語法格式如下所示:intstrtotime(string$time[,int$now])以上代碼中參數(shù)$time為被解析的字符串,格式根據(jù)GNU(革奴)日期輸入格式的語法。可選參數(shù)$now是用來計算返回值的時間戳。執(zhí)行函數(shù)將會返回指定的時間戳記。8.4.5將英文文本的日期時間描述解析為Unix時間戳函8.5數(shù)據(jù)處理實(shí)例數(shù)據(jù)處理在PHP編程中占有很重要的位置,同樣在一些PHP面試中經(jīng)常會涉及到數(shù)據(jù)處理的相關(guān)內(nèi)容。本節(jié)就找其中較有代表性的幾個題目給大家一些解決方案,使讀者有所啟發(fā),再碰到同樣的題目時即可迎刃而解。8.5數(shù)據(jù)處理實(shí)例數(shù)據(jù)處理在PHP編程中占有很重要的位置8.5.1處理數(shù)值【范例8-50】題目:在不使用第三個變量的情況下,交換兩個數(shù)值型變量的值。通常的交換數(shù)值操作是非常簡單的,比如下面的代碼:$c=$a;$a=$b;$b=$c;經(jīng)過上面的操作即可實(shí)現(xiàn)$a與$b內(nèi)容的交換。但現(xiàn)在題目要求在僅有兩個變量的情況下進(jìn)行交換,而PHP又不像VB直接有可以實(shí)現(xiàn)兩數(shù)交換的函數(shù),所以就需要動一點(diǎn)腦筋了。8.5.1處理數(shù)值【范例8-50】題目:在不使用第三個變8.5.2處理字符串【范例8-51】題目:編寫一個函數(shù),實(shí)現(xiàn)字符串的翻轉(zhuǎn),不能使用系統(tǒng)函數(shù)strrev()。如輸入“abc”返回“cba”。前面介紹過字符串處理函數(shù)strrev()即可實(shí)現(xiàn)字符串的翻轉(zhuǎn)。那么要編寫自定義函數(shù)實(shí)現(xiàn)該功能應(yīng)該如何組織代碼?這里可以通過字符串截取函數(shù)substr()來實(shí)現(xiàn)。8.5.2處理字符串【范例8-51】題目:編寫一個函數(shù),8.5.3處理數(shù)組【范例8-52】題目:實(shí)現(xiàn)數(shù)組由小到大的排序,不允許使用所有系統(tǒng)函數(shù)中的數(shù)組排序函數(shù)。在8.3.4小節(jié)中介紹了多種數(shù)組排序的函數(shù),使用這些函數(shù)可以按照指定的規(guī)則對數(shù)組排序。然而該題目又要求不能使用系統(tǒng)函數(shù)來實(shí)現(xiàn),這里就采用最經(jīng)典的冒泡法進(jìn)行排序操作。該算法使用二重循環(huán),對兩個數(shù)進(jìn)行比較由于在排序過程中總是小數(shù)往前放,大數(shù)往后放,相當(dāng)于氣泡往上升,所以稱作冒泡排序。8.5.3處理數(shù)組【范例8-52】題目:實(shí)現(xiàn)數(shù)組由小到大8.5.4處理日期時間【范例8-53】題目:打印出前一天的日期。如果這個題要自己寫函數(shù)來實(shí)現(xiàn),會很麻煩。如果在同一月中,很察易實(shí)現(xiàn),只需要將日期減1即可。但在每月甚至每年第一天,則需要月或者年也要變化。判斷起來相當(dāng)麻煩。好在PHP中提供了方便的函數(shù)來實(shí)現(xiàn)這一功能。其實(shí)這道面試題的根本就在于測試面試人員對PHP日期函數(shù)的掌握。使用date()函數(shù)配合strtotime()函數(shù)只需要一句代碼即可實(shí)現(xiàn)所要求的功能:<?phpecho"昨天:",date("Y-m-d",strtotime("-1day"));?>8.5.4處理日期時間【范例8-53】題目:打印出前一天8.6本章小結(jié)本章為讀者介紹了PHP中的數(shù)據(jù)處理方面的系統(tǒng)函數(shù),包括:數(shù)值操作、字符串操作、數(shù)組操作以及日期時間操作等內(nèi)容。熟練掌握這些數(shù)據(jù)的操作是進(jìn)行PHP編程的基礎(chǔ),特別是其中經(jīng)常使用到的函數(shù)更是要掌握函數(shù)的細(xì)節(jié)要求,對于不經(jīng)常使用的函數(shù)簡單了解一下其功能,在用到時再查相關(guān)資料即可。下一章將為讀者介紹PHP中的數(shù)據(jù)庫處理。8.6本章小結(jié)本章為讀者介紹了PHP中的數(shù)據(jù)處理方面的系第8章數(shù)據(jù)的處理數(shù)據(jù)處理在PHP編程過程中有著重要的地位,因?yàn)楦鞣N操作說到底還是對數(shù)據(jù)的操作。例如,需要入庫的各種用戶信息、需要進(jìn)行比較的日期時間、需要計算的數(shù)值等等。而在PHP的系統(tǒng)函數(shù)中分別定義了專門的函數(shù)類別用于處理不同的數(shù)據(jù),如數(shù)學(xué)類函數(shù)、字符串類函數(shù)、數(shù)組類函數(shù)、日期時間類等。本章就來介紹,如何使用這些不同的系統(tǒng)函數(shù)對數(shù)據(jù)進(jìn)行處理。在本章中,將重點(diǎn)學(xué)習(xí)以下內(nèi)容:操作數(shù)值操作字符串操作數(shù)組操作日期時間第8章數(shù)據(jù)的處理數(shù)據(jù)處理在PHP編程過程中有著重要的地位8.1操作數(shù)值數(shù)值操作的應(yīng)用范圍比較廣泛,特別是制作專業(yè)性較強(qiáng)的Web應(yīng)用程序,如計算員工平均工資、執(zhí)行各種復(fù)雜的數(shù)據(jù)基礎(chǔ)繪圖、進(jìn)行各種不同進(jìn)制的轉(zhuǎn)換等。PHP系統(tǒng)函數(shù)中提供了math類函數(shù)專門用于處理各種數(shù)值操作,本節(jié)就來介紹各種數(shù)值的常見操作。8.1操作數(shù)值數(shù)值操作的應(yīng)用范圍比較廣泛,特別是制作專業(yè)8.1.1求絕對值PHP中提供了用于求絕對值的函數(shù)abs(),使用該函數(shù)可以求一個數(shù)的絕對值。該函數(shù)的語法格式如以下代碼所示:numberabs(mixed$number)該函數(shù)的參數(shù)$number為指定的數(shù)值,既可以是整型數(shù)也可以是浮點(diǎn)數(shù)。函數(shù)將會根據(jù)求絕對值規(guī)則返回指定數(shù)的絕對值。如果參數(shù)number是float,則返回的類型也是float,否則返回integer。8.1.1求絕對值PHP中提供了用于求絕對值的函數(shù)abs8.1.1求絕對值8.1.1求絕對值8.1.2小數(shù)取整在實(shí)際操作時,經(jīng)常遇到需要將小數(shù)轉(zhuǎn)變?yōu)檎麛?shù)的情況。PHP中提供了多種“小數(shù)取整”的方法。分別通過不同的函數(shù)來實(shí)現(xiàn),本小節(jié)來介紹各種小數(shù)取整的方法。1.進(jìn)一法取整2.舍去法取整3.四舍五入法取整8.1.2小數(shù)取整在實(shí)際操作時,經(jīng)常遇到需要將小數(shù)轉(zhuǎn)變?yōu)?.1.3角度與弧度轉(zhuǎn)化角度與弧度轉(zhuǎn)化是常用的數(shù)學(xué)操作之一。因?yàn)橥ǔH藗兯褂玫念愋褪墙嵌?,而一些三角函?shù)卻需要使用弧度來作為參數(shù),所以需要進(jìn)行角度與弧度的轉(zhuǎn)化。PHP中就專門提供了一類函數(shù)來執(zhí)行角度與弧度的轉(zhuǎn)化操作。1.角度轉(zhuǎn)化為弧度2.弧度轉(zhuǎn)化為角度8.1.3角度與弧度轉(zhuǎn)化角度與弧度轉(zhuǎn)化是常用的數(shù)學(xué)操作之8.1.3角度與弧度轉(zhuǎn)化8.1.3角度與弧度轉(zhuǎn)化8.1.4次方與平方根求次方與求平方根,也有著廣泛的用途,PHP中也提供了實(shí)現(xiàn)這兩項(xiàng)功能的函數(shù)。1.求次方2.求平方根8.1.4次方與平方根求次方與求平方根,也有著廣泛的用途8.1.5求三角值三角類函數(shù)通常包括:正弦、余弦、正切、余切、正割、余割以及反正弦、反余弦、反正切、反余切、反正割、反余割等。PHP中提供了與這些數(shù)學(xué)表述幾乎一致的函數(shù)。8.1.5求三角值三角類函數(shù)通常包括:正弦、余弦、正切、8.1.6求最值求一組數(shù)中的最大值或者最小值也是比較常用的操作之一。如求一個班級中的英語考試最高成績、又比如評委評分時需要去掉的最低分等。PHP中也提供了求最大值與最小值的函數(shù)。1.求最大值函數(shù)2.求最小值函數(shù)8.1.6求最值求一組數(shù)中的最大值或者最小值也是比較常用8.1.5求三角值8.1.5求三角值8.1.7求隨機(jī)數(shù)隨機(jī)數(shù)在Web應(yīng)用程序也有應(yīng)用的舞臺,最常見的就是輸入一個隨機(jī)的驗(yàn)證碼。PHP中的隨機(jī)數(shù)處理函數(shù),也提供了獲取隨機(jī)數(shù)的功能。使用隨機(jī)數(shù)函數(shù)rand()即可實(shí)現(xiàn)這樣的效果,該函數(shù)的語法格式如以下代碼所示。intrand([intmin,intmax])該函數(shù)有兩個可選參數(shù):min與max都為數(shù)值型,函數(shù)將會返回min與max之間的一個隨機(jī)數(shù)值。如果不帶這兩個參數(shù),函數(shù)將返回0到系統(tǒng)支持最大數(shù)值之間的一個偽隨機(jī)數(shù)。注意rand(min,max)返回的隨機(jī)數(shù),包含min與max即隨機(jī)數(shù)也可能是最小值或者最大值。8.1.7求隨機(jī)數(shù)隨機(jī)數(shù)在Web應(yīng)用程序也有應(yīng)用的舞臺,8.1.7求隨機(jī)數(shù)8.1.7求隨機(jī)數(shù)8.1.8進(jìn)制轉(zhuǎn)換進(jìn)制的概念在每種編程語言中都有涉及。十進(jìn)制是人們?nèi)粘L幚頂?shù)值時所使用的進(jìn)制,這種進(jìn)制最為人們熟悉與理解,除此之外還有二進(jìn)制、八進(jìn)制與十六進(jìn)制等。這些進(jìn)制通常用于計算機(jī)語言直接處理數(shù)據(jù)。所以數(shù)值在不同進(jìn)制之間的轉(zhuǎn)換就成為數(shù)據(jù)操作的一個重要內(nèi)容。本小節(jié)來介紹在PHP中如何實(shí)現(xiàn)進(jìn)制的轉(zhuǎn)換操作。1.十進(jìn)制與二進(jìn)制轉(zhuǎn)換2.十進(jìn)制與八進(jìn)制轉(zhuǎn)換3.十進(jìn)制與十六進(jìn)制轉(zhuǎn)換4.任意進(jìn)制之間的轉(zhuǎn)換8.1.8進(jìn)制轉(zhuǎn)換進(jìn)制的概念在每種編程語言中都有涉及。十8.1.8進(jìn)制轉(zhuǎn)換8.1.8進(jìn)制轉(zhuǎn)換8.1.9其他數(shù)值處理函數(shù)前面8小節(jié)介紹了幾種常用的數(shù)值處理函數(shù),除了這些函數(shù)之外,PHP數(shù)學(xué)函數(shù)中還包括其他幾個不太常用的數(shù)值處理函數(shù),在這里作下簡要的介紹。1.計算e的指數(shù)2.求余數(shù)函數(shù)3.計算直角三角形斜邊長4.以10為底的對數(shù)5.自然對數(shù)6.獲取圓周率8.1.9其他數(shù)值處理函數(shù)前面8小節(jié)介紹了幾種常用的數(shù)值8.2操作字符串字符串在數(shù)據(jù)操作中也占有相當(dāng)大的比重,因?yàn)楹芏嗟臄?shù)據(jù)是以字符串來作為載體的。比如:注冊用戶的用戶名、密碼、聯(lián)系方式、地址等等。所有這些內(nèi)容都需要使用字符串來對其進(jìn)行操作。針對這種情況,PHP中也提供了大量的字符串操作函數(shù)用于處理字符串,本節(jié)分別來為讀者介紹。8.2操作字符串字符串在數(shù)據(jù)操作中也占有相當(dāng)大的比重,因8.2.1字符串輸出字符串的輸出操作是所有字符串操作中最為基本的一類操作,PHP中提供了很多用于實(shí)現(xiàn)字符串輸出的函數(shù)(或者語句)本小節(jié)就先來介紹字符串的輸出操作。1.最常見的輸出:echo2.print輸出函數(shù)3.格式化輸出字符串8.2.1字符串輸出字符串的輸出操作是所有字符串操作中最8.2.2字符串長度求字符串長度是使用字符串的基礎(chǔ)。PHP中提供了用于獲取字符串長度的函數(shù):strlen(),該函數(shù)的語法格式如下所示:intstrlen(string$string)以上代碼中,參數(shù)$string是需要獲取長度的字符串,執(zhí)行該函數(shù)將以數(shù)值形式返回指定的字符串的長度。8.2.2字符串長度求字符串長度是使用字符串的基礎(chǔ)。PH8.2.3字符串截取字符串截取操作,是最常用到的字符串操作之一,PHP中也提供了用于實(shí)現(xiàn)字符串截取的功能。通過函數(shù):substr()即可實(shí)現(xiàn)字符串截取操作,該函數(shù)的語法格式如以下代碼所示:stringsubstr(string$string,int$start[,int$length])以上代碼中$string為指定的需要進(jìn)行截取操作的字符串,參數(shù)$start為進(jìn)行截取所開始的位置,以數(shù)值表示;可選參數(shù)$length為指定的截取的長度也以數(shù)值表示,如果省略該參數(shù)則從指定位置截到最后。執(zhí)行該函數(shù)將按照指定的位置及長度返回一個新的字符串。需要注意的是,如果參數(shù)$start為負(fù)數(shù)則從倒數(shù)第幾個位置開始截取;如果參數(shù)$length為負(fù)數(shù)則為字符串末尾需要保留的長度。8.2.3字符串截取字符串截取操作,是最常用到的字符串操8.2.3字符串截取8.2.3字符串截取8.2.4字符串替換字符串替換操作是最常用的字符串操作之一,在實(shí)際編程過程中,出于某種特殊要求,需要將字符串中的某些字符替換為其他字符。如用戶互動程序中對用戶輸入的內(nèi)容中的敏感或者違法內(nèi)容進(jìn)行過濾。PHP中提供了兩個用于實(shí)現(xiàn)字符串替換功能的函數(shù),下面分別為讀者介紹。1.轉(zhuǎn)換字符串中的某些字符2.將字符串中一部分替換為另一字符串3.將字符串中所有指定字符進(jìn)行轉(zhuǎn)換8.2.4字符串替換字符串替換操作是最常用的字符串操作之8.2.4字符串替換8.2.4字符串替換8.2.5字符串分割使用PHP的字符串分割函數(shù):explode()可以將字符串按照指定規(guī)則分割為幾個字符串,結(jié)果以數(shù)組的形式出現(xiàn)。該函數(shù)的語法格式如以下代碼所示:arrayexplode(string$separator,string$string[,int$limit])該函數(shù)有兩個必選參數(shù)與一個可選參數(shù):參數(shù)$separator為執(zhí)行分割操作的字符串的一個子串或者叫分割標(biāo)記;參數(shù)$string為目標(biāo)字符串;可選參數(shù)指定最多返回的數(shù)組元素個數(shù)。執(zhí)行函數(shù)將把字符串按照分割標(biāo)記分割為數(shù)組。8.2.5字符串分割使用PHP的字符串分割函數(shù):expl8.2.5字符串分割8.2.5字符串分割8.2.6字符串的比較在PHP中,不僅數(shù)值、數(shù)組可以比較大小字符串也有大小的區(qū)分。比較字符串的大小需要使用專門的字符串比較函數(shù)來實(shí)現(xiàn)。1.不區(qū)分大小寫比較2.區(qū)分大小寫比較8.2.6字符串的比較在PHP中,不僅數(shù)值、數(shù)組可以比較8.2.7字符串的大小寫對英文字符串進(jìn)行操作時,大小寫的轉(zhuǎn)換問題就成為字符串操作的重要內(nèi)容之一。PHP中也為字符串的大小寫轉(zhuǎn)換提供了一組系統(tǒng)函數(shù)。本小節(jié)就來分別介紹這些大小寫轉(zhuǎn)換類函數(shù)。1.將字符串中所有內(nèi)容轉(zhuǎn)換為大寫stringstrtoupper(string$str)2.將字符串中所有內(nèi)容轉(zhuǎn)換為小寫stringstrtolower(string$str)3.將字符串的首字母轉(zhuǎn)換為大寫stringucfirst(string$str)4.將字符串的每個單詞的首字母轉(zhuǎn)換為大寫stringucwords(string$str)8.2.7字符串的大小寫對英文字符串進(jìn)行操作時,大小寫的8.2.7字符串的大小寫8.2.7字符串的大小寫8.2.8字符串與ASCII碼在實(shí)際編程的過程中有時也需要將字符轉(zhuǎn)換為ASCII碼,或者反過來將ASCII碼轉(zhuǎn)化為其對應(yīng)的字符。在PHP的字符串操作類函數(shù)中也提供了將字符與其對應(yīng)的ASCII碼進(jìn)行轉(zhuǎn)換的函數(shù)。本小節(jié)來介紹這樣的函數(shù)。1.將字符轉(zhuǎn)換為ASCII碼2.返回ASCII碼所對應(yīng)的字符8.2.8字符串與ASCII碼在實(shí)際編程的過程中有時也需8.2.8字符串與ASCII碼8.2.8字符串與ASCII碼8.2.9轉(zhuǎn)換HTML特殊字符在用戶互動程序中,需要對用戶的輸入內(nèi)容進(jìn)行過濾。因?yàn)槿绻脩糨斎雰?nèi)容中含有HTML特殊字符將會對程序的運(yùn)行帶來一定的影響,甚至于別有用心的用戶可以在HTML代碼中混合JavaScript代碼可以造用用戶秘密的丟失。而在PHP字符串有專門用處理于含有HTML特殊字符的函數(shù)。本節(jié)就這些函數(shù)為讀者作介紹。1.使用htmlentities()進(jìn)行轉(zhuǎn)換2.使用htmlspecialchars()8.2.9轉(zhuǎn)換HTML特殊字符在用戶互動程序中,需要對用8.2.9轉(zhuǎn)換HTML特殊字符8.2.9轉(zhuǎn)換HTML特殊字符8.2.10字符串查找在PHP中還可以執(zhí)行字符串查找操作,即在一個字符串中查找另一個字符串出現(xiàn)的位置。支持該操作的函數(shù)為:strpos(),該函數(shù)的語法格式如以下代碼所示。intstrpos(string$haystack,mixed$needle[,int$offset])以上代碼中參數(shù)$haystack為需要進(jìn)行查找的字符串,以一個字符串型變量表示;參數(shù)$needle為查找的目標(biāo)字符串;$offset為可選參數(shù),該函數(shù)指定開始查找的偏移量,其默認(rèn)值為0。該函數(shù)將返回第一個找到的位置,如果找不到,函數(shù)將會返回FALSE。8.2.10字符串查找在PHP中還可以執(zhí)行字符串查找操作8.2.10字符串查找8.2.10字符串查找8.2.11其他字符串處理函數(shù)除了前面幾小節(jié)所介紹的字符串處理函數(shù),PHP中還有一些其他不太常用的字符串操作函數(shù)。本節(jié)分別將這些函數(shù)為讀者作簡要介紹。1.返回字符串中所用字符的信息2.將字符串使用MD5加密3.翻轉(zhuǎn)字符串4.重復(fù)字符串8.2.11其他字符串處理函數(shù)除了前面幾小節(jié)所介紹的字符8.3操作數(shù)組前面兩節(jié)分別為讀者介紹了數(shù)值的處理與字符串的處理,而作為一種普通變量的集合,數(shù)組也有著非常廣泛的用途。這一節(jié)就來介紹在PHP中常用的數(shù)組操作的內(nèi)容。PHP的系統(tǒng)函數(shù)專門提供了一類對數(shù)組進(jìn)行操作的函數(shù),通過這些函數(shù)可以對數(shù)組進(jìn)行各種需要的操作,本節(jié)將逐一作介紹。8.3操作數(shù)組前面兩節(jié)分別為讀者介紹了數(shù)值的處理與字符串8.3.1建立數(shù)組建立數(shù)組應(yīng)該是所有使用數(shù)組操作的基礎(chǔ),要使用一個數(shù)組首先就要創(chuàng)建數(shù)組。在PHP中創(chuàng)建數(shù)組所要使用到的函數(shù)就是:array(),該函數(shù)語法格式如以下代碼所示:arrayarrat([mixed$con])以上代碼中參數(shù)$con即為創(chuàng)建數(shù)組所需要的內(nèi)容,可以為多種形式。既可以是單個值來表示數(shù)組的值,也可以是以=>操作符連接的鍵值對。函數(shù)將會根據(jù)相應(yīng)的參數(shù)返回數(shù)組。8.3.1建立數(shù)組建立數(shù)組應(yīng)該是所有使用數(shù)組操作的基礎(chǔ),8.3.2數(shù)組長度與字符串一樣,數(shù)組也是有長度的概念的,數(shù)組的長度通常指數(shù)組所包含有元素的個數(shù)。使用PHP系統(tǒng)函數(shù)中的count()函數(shù),可以獲取數(shù)組的長度。該函數(shù)的語法格式如以下代碼所示:intcount(mixed$var[,int$mode])8.3.2數(shù)組長度與字符串一樣,數(shù)組也是有長度的概念的,8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)因?yàn)閿?shù)組是一個變量的集合,一個值在數(shù)組中可能會出現(xiàn)多次,所以檢查數(shù)組中每個值的出現(xiàn)次數(shù)也成為使用數(shù)組的一個重要操作。使用PHP數(shù)組函數(shù)array_count_values()即可返回由數(shù)組的值及其出現(xiàn)次數(shù)所生成的數(shù)組。該代碼的語法格式如下所示。arrayarray_count_values(array$input)以上代碼中參數(shù)$input為指定的需要進(jìn)行統(tǒng)計的數(shù)組的名稱,函數(shù)將會把數(shù)組中值出現(xiàn)的次數(shù)以數(shù)組的形式返回。8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)因?yàn)閿?shù)組是一個變量的集合,8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)8.3.3檢查數(shù)組中值出現(xiàn)次數(shù)8.3.4數(shù)組排序數(shù)組的排序操作在數(shù)組操作中也占用重要的地位,常規(guī)的編程語言需要用戶使用自定義的冒泡排序法及其類似的方法實(shí)現(xiàn)排序,而在PHP中則提供了一組用于執(zhí)行數(shù)組排序的系統(tǒng)函數(shù)。本小節(jié)就分別來介紹這些數(shù)組排序函數(shù)。1.使用arsort()函數(shù)排序2.使用asort()進(jìn)行排序3.使用krsort()函數(shù)排序4.使用ksort()進(jìn)行排序5.使用rsort()函數(shù)排序6.使用sort()進(jìn)行排序7.使用uasort()函數(shù)排序8.3.4數(shù)組排序數(shù)組的排序操作在數(shù)組操作中也占用重要的8.3.4數(shù)組排序8.3.4數(shù)組排序8.3.5移動數(shù)組指針在PHP的數(shù)組中有指針的概念,數(shù)組的指針即當(dāng)前數(shù)組所指向的值。PHP提供了用于返回和移動數(shù)組指針的函數(shù),使用該函數(shù)函數(shù)可以實(shí)現(xiàn)數(shù)組指針的移動與返回當(dāng)前指針等操作。該類函數(shù)共有以下幾個:current()函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻闹?,初始的?shù)組指向第一個值;each()函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻逆I值對,并將指針后移一位(常用于遍歷數(shù)組);end()函數(shù),將數(shù)組指針移動到最后一位;next()函數(shù),將數(shù)組指針后移一位;prev()函數(shù),將數(shù)組指針前移一位;reset()函數(shù),重置數(shù)組,即將數(shù)組指針移到第一位。8.3.5移動數(shù)組指針在PHP的數(shù)組中有指針的概念,數(shù)組8.3.5移動數(shù)組指針8.3.5移動數(shù)組指針8.3.6移除重復(fù)的值在操作數(shù)組的時候,出于某種要求,需要將數(shù)組中重復(fù)的值進(jìn)行移除。如果采用自定義的函數(shù)就需要遍歷函數(shù),并找出重復(fù)的值,再將重復(fù)的值進(jìn)行刪除。而在PHP中則預(yù)定義了這樣功能的系統(tǒng)函數(shù):array_unique(),該函數(shù)的語法格式如下所示:arrayarray_unique(array$array)以上代碼中,參數(shù)$array為一個指定的數(shù)組。該函數(shù)將會對數(shù)組進(jìn)行分析,移除數(shù)組中的重復(fù)的值,并返回一個沒有重復(fù)值的新的數(shù)組。8.3.6移除重復(fù)的值在操作數(shù)組的時候,出于某種要求,需8.3.6移除重復(fù)的值8.3.6移除重復(fù)的值8.3.7合并數(shù)組PHP支持對數(shù)組的合并操作,共有三種方法實(shí)現(xiàn)不同類型的數(shù)組合并。本小節(jié)就分別來介紹這些數(shù)組合并的方法。1.最簡單的數(shù)組合并方法2.使用array_merge()函數(shù)合并數(shù)組3.使用array_merge_recursive()函數(shù)遞歸合并數(shù)組8.3.7合并數(shù)組PHP支持對數(shù)組的合并操作,共有三種方8.3.7合并數(shù)組8.3.7合并數(shù)組8.3.8檢查數(shù)組中是否存在某個值在進(jìn)行數(shù)組處理需要判斷數(shù)組中是否包含某一個值時可以使用PHP中的數(shù)組函數(shù):in_array()。該函數(shù)的作用就是檢查數(shù)組中是否存在某個值,其語法格式如以下代碼所示:boolin_array(mixed$needle,array$haystack[,bool$strict])以上代碼中參數(shù)$needle為需要查找的值,可以是多種類型;參數(shù)$haystack為進(jìn)行查找的目標(biāo)數(shù)組;可選參數(shù)$strict為布爾值,指定在進(jìn)行檢查時是否也指定類型檢查,默認(rèn)值為FALSE即不進(jìn)行類型檢查。8.3.8檢查數(shù)組中是否存在某個值在進(jìn)行數(shù)組處理需要判斷8.3.8檢查數(shù)組中是否存在某個值8.3.8檢查數(shù)組中是否存在某個值8.3.9其他數(shù)組處理函數(shù)前面各小節(jié)為讀者介紹了PHP中常用的數(shù)組處理函數(shù)。除了這些函數(shù)之外,PHP中還有一些其他的數(shù)組處理函數(shù),本小節(jié)就選取其中有代表性的函數(shù)為讀者作簡單要介紹。1.計算數(shù)組的交集2.檢查數(shù)組是否有某個鍵名3.返回數(shù)組鍵名4.計算數(shù)組所有值的和5.返回數(shù)組所有值8.3.9其他數(shù)組處理函數(shù)前面各小節(jié)為讀者介紹了PHP中8.4操作日期時間日期時間的操作在PHP編程中也占有一席之地,比較常用的如:獲取當(dāng)前時間、獲取微秒數(shù)等等。本節(jié)來介紹一下在PHP中的日期與時間的操作。8.4操作日期時間日期時間的操作在PHP編程中也占有一席8.4.1使用前的準(zhǔn)備由于在PHP5新增加了時區(qū)選項(xiàng)這一設(shè)置,其默認(rèn)值為格林威治時間。而中國大部分所在時區(qū)為東八區(qū),如果采用默認(rèn)設(shè)置則使用的時間函數(shù)所獲取的結(jié)果就會比真實(shí)時間晚8個小時。所以在使用所有的日期時間函數(shù)進(jìn)行相關(guān)操作之前需要先對該選項(xiàng)進(jìn)行設(shè)置。其設(shè)置方法如下:(1)打開PHP的配置文件php.ini。(2)查找date.timezone選項(xiàng)并去掉行首的分號。(3)在“=”號后面加Asia/Shanghai,保存php.ini配置文件。(4)重啟Apache服務(wù)即可。經(jīng)過上述修改,使用日期時間函數(shù)即可獲取到正確的值。8.4.1使用前的準(zhǔn)備由于在PHP5新增加了時區(qū)選項(xiàng)這一8.4.2格式化日期時間使用PHP中的date()函數(shù),可以格式化一個本地時間或者日期。該函數(shù)是最常用的日期時間函數(shù)之一,其語法格式如以下代碼所示。stringdate(stringformat[,inttimestamp])以上代碼中參數(shù)format為指定需要返回的日期時間的格式,以字符串表示,可選參數(shù)timestamp為一個時間戳記,以數(shù)值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論