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

下載本文檔

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

文檔簡介

1、第第8 8章章 數(shù)據(jù)的處理數(shù)據(jù)的處理數(shù)據(jù)處理在數(shù)據(jù)處理在PHP編程過程中有著重要的地位,因為編程過程中有著重要的地位,因為各種操作說到底還是對數(shù)據(jù)的操作。例如,需要入庫的各種各種操作說到底還是對數(shù)據(jù)的操作。例如,需要入庫的各種用戶信息、需要進(jìn)行比較的日期時間、需要計算的數(shù)值等等用戶信息、需要進(jìn)行比較的日期時間、需要計算的數(shù)值等等。而在。而在PHP的系統(tǒng)函數(shù)中分別定義了專門的函數(shù)類別用于處的系統(tǒng)函數(shù)中分別定義了專門的函數(shù)類別用于處理不同的數(shù)據(jù),如數(shù)學(xué)類函數(shù)、字符串類函數(shù)、數(shù)組類函數(shù)理不同的數(shù)據(jù),如數(shù)學(xué)類函數(shù)、字符串類函數(shù)、數(shù)組類函數(shù)、日期時間類等。本章就來介紹,如何使用這些不同的系統(tǒng)、日期時間類

2、等。本章就來介紹,如何使用這些不同的系統(tǒng)函數(shù)對數(shù)據(jù)進(jìn)行處理。函數(shù)對數(shù)據(jù)進(jìn)行處理。在本章中,將重點學(xué)習(xí)以下內(nèi)容:在本章中,將重點學(xué)習(xí)以下內(nèi)容:操作數(shù)值操作數(shù)值操作字符串操作字符串操作數(shù)組操作數(shù)組操作日期時間操作日期時間8.1 8.1 操作數(shù)值操作數(shù)值數(shù)值操作的應(yīng)用范圍比較廣泛,特別是制作專業(yè)性數(shù)值操作的應(yīng)用范圍比較廣泛,特別是制作專業(yè)性較強的較強的Web應(yīng)用程序,如計算員工平均工資、執(zhí)行各種復(fù)雜應(yīng)用程序,如計算員工平均工資、執(zhí)行各種復(fù)雜的數(shù)據(jù)基礎(chǔ)繪圖、進(jìn)行各種不同進(jìn)制的轉(zhuǎn)換等。的數(shù)據(jù)基礎(chǔ)繪圖、進(jìn)行各種不同進(jìn)制的轉(zhuǎn)換等。PHP系統(tǒng)函系統(tǒng)函數(shù)中提供了數(shù)中提供了math類函數(shù)專門用于處理各種數(shù)值操作,

3、本節(jié)類函數(shù)專門用于處理各種數(shù)值操作,本節(jié)就來介紹各種數(shù)值的常見操作。就來介紹各種數(shù)值的常見操作。8.1.1 8.1.1 求絕對值求絕對值PHP中提供了用于求絕對值的函數(shù)中提供了用于求絕對值的函數(shù)abs(),使用該函數(shù),使用該函數(shù)可以求一個數(shù)的絕對值。該函數(shù)的語法格式如以下代碼所示:可以求一個數(shù)的絕對值。該函數(shù)的語法格式如以下代碼所示:number abs(mixed $number)該函數(shù)的參數(shù)該函數(shù)的參數(shù)$number為指定的數(shù)值,既可以是整型為指定的數(shù)值,既可以是整型數(shù)也可以是浮點數(shù)。函數(shù)將會根據(jù)求絕對值規(guī)則返回指定數(shù)的數(shù)也可以是浮點數(shù)。函數(shù)將會根據(jù)求絕對值規(guī)則返回指定數(shù)的絕對值。如果參數(shù)

4、絕對值。如果參數(shù)number是是float,則返回的類型也是,則返回的類型也是float,否則返回否則返回integer。8.1.1 8.1.1 求絕對值求絕對值8.1.2 8.1.2 小數(shù)取整小數(shù)取整在實際操作時,經(jīng)常遇到需要將小數(shù)轉(zhuǎn)變?yōu)檎麛?shù)的情況在實際操作時,經(jīng)常遇到需要將小數(shù)轉(zhuǎn)變?yōu)檎麛?shù)的情況。PHP中提供了多種中提供了多種“小數(shù)取整小數(shù)取整”的方法。分別通過不同的函的方法。分別通過不同的函數(shù)來實現(xiàn),本小節(jié)來介紹各種小數(shù)取整的方法。數(shù)來實現(xiàn),本小節(jié)來介紹各種小數(shù)取整的方法。1進(jìn)一法取整進(jìn)一法取整2舍去法取整舍去法取整3四舍五入法取整四舍五入法取整8.1.3 8.1.3 角度與弧度轉(zhuǎn)化角度與

5、弧度轉(zhuǎn)化角度與弧度轉(zhuǎn)化是常用的數(shù)學(xué)操作之一。因為通常角度與弧度轉(zhuǎn)化是常用的數(shù)學(xué)操作之一。因為通常人們所使用的類型是角度,而一些三角函數(shù)卻需要使用弧度人們所使用的類型是角度,而一些三角函數(shù)卻需要使用弧度來作為參數(shù),所以需要進(jìn)行角度與弧度的轉(zhuǎn)化。來作為參數(shù),所以需要進(jìn)行角度與弧度的轉(zhuǎn)化。PHP中就專中就專門提供了一類函數(shù)來執(zhí)行角度與弧度的轉(zhuǎn)化操作。門提供了一類函數(shù)來執(zhí)行角度與弧度的轉(zhuǎn)化操作。1角度轉(zhuǎn)化為弧度角度轉(zhuǎn)化為弧度2弧度轉(zhuǎn)化為角度弧度轉(zhuǎn)化為角度8.1.3 8.1.3 角度與弧度轉(zhuǎn)化角度與弧度轉(zhuǎn)化8.1.4 8.1.4 次方與平方根次方與平方根求次方與求平方根,也有著廣泛的用途,求次方與求平方

6、根,也有著廣泛的用途,PHP中也中也提供了實現(xiàn)這兩項功能的函數(shù)。提供了實現(xiàn)這兩項功能的函數(shù)。1求次方求次方2求平方根求平方根8.1.5 8.1.5 求三角值求三角值三角類函數(shù)通常包括:正弦、余弦、正切、余切、正割三角類函數(shù)通常包括:正弦、余弦、正切、余切、正割、余割以及反正弦、反余弦、反正切、反余切、反正割、反余、余割以及反正弦、反余弦、反正切、反余切、反正割、反余割等。割等。PHP中提供了與這些數(shù)學(xué)表述幾乎一致的函數(shù)。中提供了與這些數(shù)學(xué)表述幾乎一致的函數(shù)。8.1.6 8.1.6 求最值求最值求一組數(shù)中的最大值或者最小值也是比較常用的操求一組數(shù)中的最大值或者最小值也是比較常用的操作之一。如求一

7、個班級中的英語考試最高成績、又比如評委作之一。如求一個班級中的英語考試最高成績、又比如評委評分時需要去掉的最低分等。評分時需要去掉的最低分等。PHP中也提供了求最大值與最中也提供了求最大值與最小值的函數(shù)。小值的函數(shù)。1求最大值函數(shù)求最大值函數(shù)2求最小值函數(shù)求最小值函數(shù)8.1.5 8.1.5 求三角值求三角值8.1.7 8.1.7 求隨機數(shù)求隨機數(shù)隨機數(shù)在隨機數(shù)在Web應(yīng)用程序也有應(yīng)用的舞臺,最常見的應(yīng)用程序也有應(yīng)用的舞臺,最常見的就是輸入一個隨機的驗證碼。就是輸入一個隨機的驗證碼。PHP中的隨機數(shù)處理函數(shù),也中的隨機數(shù)處理函數(shù),也提供了獲取隨機數(shù)的功能。使用隨機數(shù)函數(shù)提供了獲取隨機數(shù)的功能。使

8、用隨機數(shù)函數(shù)rand()即可實現(xiàn)即可實現(xiàn)這樣的效果,該函數(shù)的語法格式如以下代碼所示。這樣的效果,該函數(shù)的語法格式如以下代碼所示。int rand(int min,int max)該函數(shù)有兩個可選參數(shù):該函數(shù)有兩個可選參數(shù):min與與max都為數(shù)值型,函都為數(shù)值型,函數(shù)將會返回數(shù)將會返回min與與max之間的一個隨機數(shù)值。如果不帶這兩之間的一個隨機數(shù)值。如果不帶這兩個參數(shù),函數(shù)將返回個參數(shù),函數(shù)將返回0到系統(tǒng)支持最大數(shù)值之間的一個偽隨到系統(tǒng)支持最大數(shù)值之間的一個偽隨機數(shù)。機數(shù)。注意注意rand(min,max)返回的隨機數(shù),包含返回的隨機數(shù),包含min與與max即隨機數(shù)也可能是最小值或者最大值。

9、即隨機數(shù)也可能是最小值或者最大值。8.1.7 8.1.7 求隨機數(shù)求隨機數(shù)8.1.8 8.1.8 進(jìn)制轉(zhuǎn)換進(jìn)制轉(zhuǎn)換進(jìn)制的概念在每種編程語言中都有涉及。十進(jìn)制是進(jìn)制的概念在每種編程語言中都有涉及。十進(jìn)制是人們?nèi)粘L幚頂?shù)值時所使用的進(jìn)制,這種進(jìn)制最為人們熟悉人們?nèi)粘L幚頂?shù)值時所使用的進(jìn)制,這種進(jìn)制最為人們熟悉與理解,除此之外還有二進(jìn)制、八進(jìn)制與十六進(jìn)制等。這些與理解,除此之外還有二進(jìn)制、八進(jìn)制與十六進(jìn)制等。這些進(jìn)制通常用于計算機語言直接處理數(shù)據(jù)。所以數(shù)值在不同進(jìn)進(jìn)制通常用于計算機語言直接處理數(shù)據(jù)。所以數(shù)值在不同進(jìn)制之間的轉(zhuǎn)換就成為數(shù)據(jù)操作的一個重要內(nèi)容。本小節(jié)來介制之間的轉(zhuǎn)換就成為數(shù)據(jù)操作的一個重

10、要內(nèi)容。本小節(jié)來介紹在紹在PHP中如何實現(xiàn)進(jìn)制的轉(zhuǎn)換操作。中如何實現(xiàn)進(jìn)制的轉(zhuǎn)換操作。1十進(jìn)制與二進(jìn)制轉(zhuǎn)換十進(jìn)制與二進(jìn)制轉(zhuǎn)換2十進(jìn)制與八進(jìn)制轉(zhuǎn)換十進(jìn)制與八進(jìn)制轉(zhuǎn)換3十進(jìn)制與十六進(jìn)制轉(zhuǎn)換十進(jìn)制與十六進(jìn)制轉(zhuǎn)換4任意進(jìn)制之間的轉(zhuǎn)換任意進(jìn)制之間的轉(zhuǎn)換8.1.8 8.1.8 進(jìn)制轉(zhuǎn)換進(jìn)制轉(zhuǎn)換8.1.9 8.1.9 其他數(shù)值處理函數(shù)其他數(shù)值處理函數(shù)前面前面8小節(jié)介紹了幾種常用的數(shù)值處理函數(shù),除了這小節(jié)介紹了幾種常用的數(shù)值處理函數(shù),除了這些函數(shù)之外,些函數(shù)之外,PHP數(shù)學(xué)函數(shù)中還包括其他幾個不太常用的數(shù)數(shù)學(xué)函數(shù)中還包括其他幾個不太常用的數(shù)值處理函數(shù),在這里作下簡要的介紹。值處理函數(shù),在這里作下簡要的介紹。1計

11、算計算e的指數(shù)的指數(shù)2求余數(shù)函數(shù)求余數(shù)函數(shù)3計算直角三角形斜邊長計算直角三角形斜邊長4以以10為底的對數(shù)為底的對數(shù)5自然對數(shù)自然對數(shù)6獲取圓周率獲取圓周率8.2 8.2 操作字符串操作字符串字符串在數(shù)據(jù)操作中也占有相當(dāng)大的比重,因為很多字符串在數(shù)據(jù)操作中也占有相當(dāng)大的比重,因為很多的數(shù)據(jù)是以字符串來作為載體的。比如:注冊用戶的用戶名的數(shù)據(jù)是以字符串來作為載體的。比如:注冊用戶的用戶名、密碼、聯(lián)系方式、地址等等。所有這些內(nèi)容都需要使用字、密碼、聯(lián)系方式、地址等等。所有這些內(nèi)容都需要使用字符串來對其進(jìn)行操作。針對這種情況,符串來對其進(jìn)行操作。針對這種情況,PHP中也提供了大量中也提供了大量的字符串

12、操作函數(shù)用于處理字符串,本節(jié)分別來為讀者介紹的字符串操作函數(shù)用于處理字符串,本節(jié)分別來為讀者介紹。8.2.1 8.2.1 字符串輸出字符串輸出字符串的輸出操作是所有字符串操作中最為基本的一字符串的輸出操作是所有字符串操作中最為基本的一類操作,類操作,PHP中提供了很多用于實現(xiàn)字符串輸出的函數(shù)(或中提供了很多用于實現(xiàn)字符串輸出的函數(shù)(或者語句)本小節(jié)就先來介紹字符串的輸出操作。者語句)本小節(jié)就先來介紹字符串的輸出操作。1最常見的輸出:最常見的輸出:echo2print輸出函數(shù)輸出函數(shù)3格式化輸出字符串格式化輸出字符串8.2.2 8.2.2 字符串長度字符串長度求字符串長度是使用字符串的基礎(chǔ)。求字

13、符串長度是使用字符串的基礎(chǔ)。PHP中提供了中提供了用于獲取字符串長度的函數(shù):用于獲取字符串長度的函數(shù):strlen (),該函數(shù)的語法格式,該函數(shù)的語法格式如下所示:如下所示:int strlen(string $string)以上代碼中,參數(shù)以上代碼中,參數(shù)$string是需要獲取長度的字符串是需要獲取長度的字符串,執(zhí)行該函數(shù)將以數(shù)值形式返回指定的字符串的長度。,執(zhí)行該函數(shù)將以數(shù)值形式返回指定的字符串的長度。8.2.3 8.2.3 字符串截取字符串截取字符串截取操作,是最常用到的字符串操作之一,字符串截取操作,是最常用到的字符串操作之一,PHP中也提供了用于實現(xiàn)字符串截取的功能。通過函數(shù):中

14、也提供了用于實現(xiàn)字符串截取的功能。通過函數(shù):substr()即可實現(xiàn)字符串截取操作,該函數(shù)的語法格式如以下即可實現(xiàn)字符串截取操作,該函數(shù)的語法格式如以下代碼所示:代碼所示:string substr(string $string,int $start,int $length)以上代碼中以上代碼中$string為指定的需要進(jìn)行截取操作的字符為指定的需要進(jìn)行截取操作的字符串,參數(shù)串,參數(shù)$start為進(jìn)行截取所開始的位置,以數(shù)值表示;可選為進(jìn)行截取所開始的位置,以數(shù)值表示;可選參數(shù)參數(shù)$length為指定的截取的長度也以數(shù)值表示,如果省略該參為指定的截取的長度也以數(shù)值表示,如果省略該參數(shù)則從指定位

15、置截到最后。執(zhí)行該函數(shù)將按照指定的位置及長數(shù)則從指定位置截到最后。執(zhí)行該函數(shù)將按照指定的位置及長度返回一個新的字符串。度返回一個新的字符串。需要注意的是,如果參數(shù)需要注意的是,如果參數(shù)$start為負(fù)數(shù)則從倒數(shù)第幾個為負(fù)數(shù)則從倒數(shù)第幾個位置開始截??;如果參數(shù)位置開始截?。蝗绻麉?shù)$length為負(fù)數(shù)則為字符串末尾需要保為負(fù)數(shù)則為字符串末尾需要保留的長度。留的長度。8.2.3 8.2.3 字符串截取字符串截取8.2.4 8.2.4 字符串替換字符串替換字符串替換操作是最常用的字符串操作之一,在實字符串替換操作是最常用的字符串操作之一,在實際編程過程中,出于某種特殊要求,需要將字符串中的某些際編程

16、過程中,出于某種特殊要求,需要將字符串中的某些字符替換為其他字符。如用戶互動程序中對用戶輸入的內(nèi)容字符替換為其他字符。如用戶互動程序中對用戶輸入的內(nèi)容中的敏感或者違法內(nèi)容進(jìn)行過濾。中的敏感或者違法內(nèi)容進(jìn)行過濾。PHP中提供了兩個用于實中提供了兩個用于實現(xiàn)字符串替換功能的函數(shù),下面分別為讀者介紹?,F(xiàn)字符串替換功能的函數(shù),下面分別為讀者介紹。1轉(zhuǎn)換字符串中的某些字符轉(zhuǎn)換字符串中的某些字符2將字符串中一部分替換為另一字符串將字符串中一部分替換為另一字符串3將字符串中所有指定字符進(jìn)行轉(zhuǎn)換將字符串中所有指定字符進(jìn)行轉(zhuǎn)換8.2.4 8.2.4 字符串替換字符串替換8.2.5 8.2.5 字符串分割字符串分

17、割使用使用PHP的字符串分割函數(shù):的字符串分割函數(shù):explode()可以將字符可以將字符串按照指定規(guī)則分割為幾個字符串,結(jié)果以數(shù)組的形式出現(xiàn)串按照指定規(guī)則分割為幾個字符串,結(jié)果以數(shù)組的形式出現(xiàn)。該函數(shù)的語法格式如以下代碼所示:。該函數(shù)的語法格式如以下代碼所示:array explode(string $separator,string $string,int $limit)該函數(shù)有兩個必選參數(shù)與一個可選參數(shù):參數(shù)該函數(shù)有兩個必選參數(shù)與一個可選參數(shù):參數(shù)$separator為執(zhí)行分割操作的字符串的一個子串或者叫分割為執(zhí)行分割操作的字符串的一個子串或者叫分割標(biāo)記;參數(shù)標(biāo)記;參數(shù)$string為目

18、標(biāo)字符串;可選參數(shù)指定最多返回的為目標(biāo)字符串;可選參數(shù)指定最多返回的數(shù)組元素個數(shù)。執(zhí)行函數(shù)將把字符串按照分割標(biāo)記分割為數(shù)數(shù)組元素個數(shù)。執(zhí)行函數(shù)將把字符串按照分割標(biāo)記分割為數(shù)組。組。8.2.5 8.2.5 字符串分割字符串分割8.2.6 8.2.6 字符串的比較字符串的比較在在PHP中,不僅數(shù)值、數(shù)組可以比較大小字符串也中,不僅數(shù)值、數(shù)組可以比較大小字符串也有大小的區(qū)分。比較字符串的大小需要使用專門的字符串比有大小的區(qū)分。比較字符串的大小需要使用專門的字符串比較函數(shù)來實現(xiàn)。較函數(shù)來實現(xiàn)。1不區(qū)分大小寫比較不區(qū)分大小寫比較2區(qū)分大小寫比較區(qū)分大小寫比較8.2.7 8.2.7 字符串的大小寫字符串的

19、大小寫對英文字符串進(jìn)行操作時,大小寫的轉(zhuǎn)換問題就成對英文字符串進(jìn)行操作時,大小寫的轉(zhuǎn)換問題就成為字符串操作的重要內(nèi)容之一。為字符串操作的重要內(nèi)容之一。PHP中也為字符串的大小寫中也為字符串的大小寫轉(zhuǎn)換提供了一組系統(tǒng)函數(shù)。本小節(jié)就來分別介紹這些大小寫轉(zhuǎn)換提供了一組系統(tǒng)函數(shù)。本小節(jié)就來分別介紹這些大小寫轉(zhuǎn)換類函數(shù)。轉(zhuǎn)換類函數(shù)。1將字符串中所有內(nèi)容轉(zhuǎn)換為大寫將字符串中所有內(nèi)容轉(zhuǎn)換為大寫string strtoupper(string $str)2將字符串中所有內(nèi)容轉(zhuǎn)換為小寫將字符串中所有內(nèi)容轉(zhuǎn)換為小寫string strtolower(string $str)3將字符串的首字母轉(zhuǎn)換為大寫將字符串的首

20、字母轉(zhuǎn)換為大寫string ucfirst(string $str)4將字符串的每個單詞的首字母轉(zhuǎn)換為大寫將字符串的每個單詞的首字母轉(zhuǎn)換為大寫string ucwords(string $str)8.2.7 8.2.7 字符串的大小寫字符串的大小寫8.2.8 8.2.8 字符串與字符串與ASCIIASCII碼碼在實際編程的過程中有時也需要將字符轉(zhuǎn)換為在實際編程的過程中有時也需要將字符轉(zhuǎn)換為ASCII碼碼,或者反過來將,或者反過來將ASCII碼轉(zhuǎn)化為其對應(yīng)的字符。在碼轉(zhuǎn)化為其對應(yīng)的字符。在PHP的字符的字符串操作類函數(shù)中也提供了將字符與其對應(yīng)的串操作類函數(shù)中也提供了將字符與其對應(yīng)的ASCII碼進(jìn)

21、行轉(zhuǎn)換碼進(jìn)行轉(zhuǎn)換的函數(shù)。本小節(jié)來介紹這樣的函數(shù)。的函數(shù)。本小節(jié)來介紹這樣的函數(shù)。1將字符轉(zhuǎn)換為將字符轉(zhuǎn)換為ASCII碼碼2返回返回ASCII碼所對應(yīng)的字符碼所對應(yīng)的字符8.2.8 8.2.8 字符串與字符串與ASCIIASCII碼碼8.2.9 8.2.9 轉(zhuǎn)換轉(zhuǎn)換HTMLHTML特殊字符特殊字符在用戶互動程序中,需要對用戶的輸入內(nèi)容進(jìn)行過濾。在用戶互動程序中,需要對用戶的輸入內(nèi)容進(jìn)行過濾。因為如果用戶輸入內(nèi)容中含有因為如果用戶輸入內(nèi)容中含有HTML特殊字符將會對程序的運特殊字符將會對程序的運行帶來一定的影響,甚至于別有用心的用戶可以在行帶來一定的影響,甚至于別有用心的用戶可以在HTML代碼代碼

22、中混合中混合JavaScript代碼可以造用用戶秘密的丟失。而在代碼可以造用用戶秘密的丟失。而在PHP字字符串有專門用處理于含有符串有專門用處理于含有HTML特殊字符的函數(shù)。本節(jié)就這些特殊字符的函數(shù)。本節(jié)就這些函數(shù)為讀者作介紹。函數(shù)為讀者作介紹。1使用使用htmlentities()進(jìn)行轉(zhuǎn)換進(jìn)行轉(zhuǎn)換2使用使用htmlspecialchars()8.2.9 8.2.9 轉(zhuǎn)換轉(zhuǎn)換HTMLHTML特殊字符特殊字符8.2.10 8.2.10 字符串查找字符串查找在在PHP中還可以執(zhí)行字符串查找操作,即在一個字符中還可以執(zhí)行字符串查找操作,即在一個字符串中查找另一個字符串出現(xiàn)的位置。支持該操作的函數(shù)為:

23、串中查找另一個字符串出現(xiàn)的位置。支持該操作的函數(shù)為:strpos(),該函數(shù)的語法格式如以下代碼所示。,該函數(shù)的語法格式如以下代碼所示。int strpos ( string $haystack ,mixed $needle,int $offset)以上代碼中參數(shù)以上代碼中參數(shù)$haystack為需要進(jìn)行查找的字符串,為需要進(jìn)行查找的字符串,以一個字符串型變量表示;參數(shù)以一個字符串型變量表示;參數(shù)$needle為查找的目標(biāo)字符串為查找的目標(biāo)字符串;$offset為可選參數(shù),該函數(shù)指定開始查找的偏移量,其默認(rèn)為可選參數(shù),該函數(shù)指定開始查找的偏移量,其默認(rèn)值為值為0。該函數(shù)將返回第一個找到的位置,

24、如果找不到,函數(shù)。該函數(shù)將返回第一個找到的位置,如果找不到,函數(shù)將會返回將會返回FALSE。8.2.10 8.2.10 字符串查找字符串查找8.2.11 8.2.11 其他字符串處理函數(shù)其他字符串處理函數(shù)除了前面幾小節(jié)所介紹的字符串處理函數(shù),除了前面幾小節(jié)所介紹的字符串處理函數(shù),PHP中中還有一些其他不太常用的字符串操作函數(shù)。本節(jié)分別將這些還有一些其他不太常用的字符串操作函數(shù)。本節(jié)分別將這些函數(shù)為讀者作簡要介紹。函數(shù)為讀者作簡要介紹。1返回字符串中所用字符的信息返回字符串中所用字符的信息2將字符串使用將字符串使用MD5加密加密3翻轉(zhuǎn)字符串翻轉(zhuǎn)字符串4重復(fù)字符串重復(fù)字符串8.3 8.3 操作數(shù)組

25、操作數(shù)組前面兩節(jié)分別為讀者介紹了數(shù)值的處理與字符串的處理前面兩節(jié)分別為讀者介紹了數(shù)值的處理與字符串的處理,而作為一種普通變量的集合,數(shù)組也有著非常廣泛的用途。這,而作為一種普通變量的集合,數(shù)組也有著非常廣泛的用途。這一節(jié)就來介紹在一節(jié)就來介紹在PHP中常用的數(shù)組操作的內(nèi)容。中常用的數(shù)組操作的內(nèi)容。PHP的系統(tǒng)函數(shù)的系統(tǒng)函數(shù)專門提供了一類對數(shù)組進(jìn)行操作的函數(shù),通過這些函數(shù)可以對數(shù)專門提供了一類對數(shù)組進(jìn)行操作的函數(shù),通過這些函數(shù)可以對數(shù)組進(jìn)行各種需要的操作,本節(jié)將逐一作介紹。組進(jìn)行各種需要的操作,本節(jié)將逐一作介紹。8.3.1 8.3.1 建立數(shù)組建立數(shù)組建立數(shù)組應(yīng)該是所有使用數(shù)組操作的基礎(chǔ),要使用

26、一建立數(shù)組應(yīng)該是所有使用數(shù)組操作的基礎(chǔ),要使用一個數(shù)組首先就要創(chuàng)建數(shù)組。在個數(shù)組首先就要創(chuàng)建數(shù)組。在PHP中創(chuàng)建數(shù)組所要使用到的函中創(chuàng)建數(shù)組所要使用到的函數(shù)就是:數(shù)就是:array(),該函數(shù)語法格式如以下代碼所示:,該函數(shù)語法格式如以下代碼所示:array arrat(mixed $con)以上代碼中參數(shù)以上代碼中參數(shù)$con即為創(chuàng)建數(shù)組所需要的內(nèi)容,可即為創(chuàng)建數(shù)組所需要的內(nèi)容,可以為多種形式。既可以是單個值來表示數(shù)組的值,也可以是以以為多種形式。既可以是單個值來表示數(shù)組的值,也可以是以=操作符連接的鍵值對。函數(shù)將會根據(jù)相應(yīng)的參數(shù)返回數(shù)組。操作符連接的鍵值對。函數(shù)將會根據(jù)相應(yīng)的參數(shù)返回數(shù)組。

27、8.3.2 8.3.2 數(shù)組長度數(shù)組長度與字符串一樣,數(shù)組也是有長度的概念的,數(shù)組的長與字符串一樣,數(shù)組也是有長度的概念的,數(shù)組的長度通常指數(shù)組所包含有元素的個數(shù)。使用度通常指數(shù)組所包含有元素的個數(shù)。使用PHP系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)中的count()函數(shù),可以獲取數(shù)組的長度。該函數(shù)的語法格式如以函數(shù),可以獲取數(shù)組的長度。該函數(shù)的語法格式如以下代碼所示:下代碼所示:int count(mixed $var,int $mode)8.3.3 8.3.3 檢查數(shù)組中值出現(xiàn)次數(shù)檢查數(shù)組中值出現(xiàn)次數(shù)因為數(shù)組是一個變量的集合,一個值在數(shù)組中可能因為數(shù)組是一個變量的集合,一個值在數(shù)組中可能會出現(xiàn)多次,所以檢查數(shù)

28、組中每個值的出現(xiàn)次數(shù)也成為使用會出現(xiàn)多次,所以檢查數(shù)組中每個值的出現(xiàn)次數(shù)也成為使用數(shù)組的一個重要操作。使用數(shù)組的一個重要操作。使用PHP數(shù)組函數(shù)數(shù)組函數(shù)array_count_values()即可返回由數(shù)組的值及其出現(xiàn)次數(shù)所生即可返回由數(shù)組的值及其出現(xiàn)次數(shù)所生成的數(shù)組。該代碼的語法格式如下所示。成的數(shù)組。該代碼的語法格式如下所示。array array_count_values(array $input)以上代碼中參數(shù)以上代碼中參數(shù)$input為指定的需要進(jìn)行統(tǒng)計的數(shù)為指定的需要進(jìn)行統(tǒng)計的數(shù)組的名稱,函數(shù)將會把數(shù)組中值出現(xiàn)的次數(shù)以數(shù)組的形式返組的名稱,函數(shù)將會把數(shù)組中值出現(xiàn)的次數(shù)以數(shù)組的形式返

29、回。回。8.3.3 8.3.3 檢查數(shù)組中值出現(xiàn)次數(shù)檢查數(shù)組中值出現(xiàn)次數(shù)8.3.4 8.3.4 數(shù)組排序數(shù)組排序數(shù)組的排序操作在數(shù)組操作中也占用重要的地位,數(shù)組的排序操作在數(shù)組操作中也占用重要的地位,常規(guī)的編程語言需要用戶使用自定義的冒泡排序法及其類似常規(guī)的編程語言需要用戶使用自定義的冒泡排序法及其類似的方法實現(xiàn)排序,而在的方法實現(xiàn)排序,而在PHP中則提供了一組用于執(zhí)行數(shù)組排中則提供了一組用于執(zhí)行數(shù)組排序的系統(tǒng)函數(shù)。本小節(jié)就分別來介紹這些數(shù)組排序函數(shù)。序的系統(tǒng)函數(shù)。本小節(jié)就分別來介紹這些數(shù)組排序函數(shù)。1使用使用arsort()函數(shù)排序函數(shù)排序2使用使用asort()進(jìn)行排序進(jìn)行排序 3使用使用

30、krsort()函數(shù)排序函數(shù)排序4使用使用ksort()進(jìn)行排序進(jìn)行排序5使用使用rsort()函數(shù)排序函數(shù)排序6使用使用sort()進(jìn)行排序進(jìn)行排序 7使用使用uasort()函數(shù)排序函數(shù)排序8.3.4 8.3.4 數(shù)組排序數(shù)組排序8.3.5 8.3.5 移動數(shù)組指針移動數(shù)組指針在在PHP的數(shù)組中有指針的概念,數(shù)組的指針即當(dāng)前數(shù)的數(shù)組中有指針的概念,數(shù)組的指針即當(dāng)前數(shù)組所指向的值。組所指向的值。PHP提供了用于返回和移動數(shù)組指針的函數(shù)提供了用于返回和移動數(shù)組指針的函數(shù),使用該函數(shù)函數(shù)可以實現(xiàn)數(shù)組指針的移動與返回當(dāng)前指針,使用該函數(shù)函數(shù)可以實現(xiàn)數(shù)組指針的移動與返回當(dāng)前指針等操作。該類函數(shù)共有以

31、下幾個:等操作。該類函數(shù)共有以下幾個:current()函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻闹担跏己瘮?shù),返回數(shù)組當(dāng)前指針?biāo)赶虻闹?,初始的?shù)組指向第一個值;的數(shù)組指向第一個值;each()函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻逆I值對,并函數(shù),返回數(shù)組當(dāng)前指針?biāo)赶虻逆I值對,并將指針后移一位(常用于遍歷數(shù)組);將指針后移一位(常用于遍歷數(shù)組);end()函數(shù),將數(shù)組指針移動到最后一位;函數(shù),將數(shù)組指針移動到最后一位;next()函數(shù),將數(shù)組指針后移一位;函數(shù),將數(shù)組指針后移一位;prev()函數(shù),將數(shù)組指針前移一位;函數(shù),將數(shù)組指針前移一位;reset()函數(shù),重置數(shù)組,即將數(shù)組指針移到第一位。函數(shù),重置數(shù)

32、組,即將數(shù)組指針移到第一位。8.3.5 8.3.5 移動數(shù)組指針移動數(shù)組指針8.3.6 8.3.6 移除重復(fù)的值移除重復(fù)的值在操作數(shù)組的時候,出于某種要求,需要將數(shù)組中在操作數(shù)組的時候,出于某種要求,需要將數(shù)組中重復(fù)的值進(jìn)行移除。如果采用自定義的函數(shù)就需要遍歷函數(shù)重復(fù)的值進(jìn)行移除。如果采用自定義的函數(shù)就需要遍歷函數(shù),并找出重復(fù)的值,再將重復(fù)的值進(jìn)行刪除。而在,并找出重復(fù)的值,再將重復(fù)的值進(jìn)行刪除。而在PHP中則中則預(yù)定義了這樣功能的系統(tǒng)函數(shù):預(yù)定義了這樣功能的系統(tǒng)函數(shù):array_unique(),該函數(shù)的,該函數(shù)的語法格式如下所示:語法格式如下所示:array array_unique(ar

33、ray $array)以上代碼中,參數(shù)以上代碼中,參數(shù)$array為一個指定的數(shù)組。該函為一個指定的數(shù)組。該函數(shù)將會對數(shù)組進(jìn)行分析,移除數(shù)組中的重復(fù)的值,并返回一數(shù)將會對數(shù)組進(jìn)行分析,移除數(shù)組中的重復(fù)的值,并返回一個沒有重復(fù)值的新的數(shù)組。個沒有重復(fù)值的新的數(shù)組。8.3.6 8.3.6 移除重復(fù)的值移除重復(fù)的值8.3.7 8.3.7 合并數(shù)組合并數(shù)組PHP支持對數(shù)組的合并操作,共有三種方法實現(xiàn)不同支持對數(shù)組的合并操作,共有三種方法實現(xiàn)不同類型的數(shù)組合并。本小節(jié)就分別來介紹這些數(shù)組合并的方法類型的數(shù)組合并。本小節(jié)就分別來介紹這些數(shù)組合并的方法。1最簡單的數(shù)組合并方法最簡單的數(shù)組合并方法2使用使用a

34、rray_merge()函數(shù)合并數(shù)組函數(shù)合并數(shù)組3使用使用array_merge_recursive()函數(shù)遞歸合并數(shù)組函數(shù)遞歸合并數(shù)組8.3.7 8.3.7 合并數(shù)組合并數(shù)組8.3.8 8.3.8 檢查數(shù)組中是否存在某個值檢查數(shù)組中是否存在某個值在進(jìn)行數(shù)組處理需要判斷數(shù)組中是否包含某一個值時在進(jìn)行數(shù)組處理需要判斷數(shù)組中是否包含某一個值時可以使用可以使用PHP中的數(shù)組函數(shù):中的數(shù)組函數(shù):in_array()。該函數(shù)的作用就是。該函數(shù)的作用就是檢查數(shù)組中是否存在某個值,其語法格式如以下代碼所示:檢查數(shù)組中是否存在某個值,其語法格式如以下代碼所示:bool in_array ( mixed $ne

35、edle, array $haystack , bool $strict )以上代碼中參數(shù)以上代碼中參數(shù)$needle為需要查找的值,可以是多種為需要查找的值,可以是多種類型;參數(shù)類型;參數(shù)$haystack為進(jìn)行查找的目標(biāo)數(shù)組;可選參數(shù)為進(jìn)行查找的目標(biāo)數(shù)組;可選參數(shù)$strict為布爾值,指定在進(jìn)行檢查時是否也指定類型檢查,默認(rèn)值為為布爾值,指定在進(jìn)行檢查時是否也指定類型檢查,默認(rèn)值為FALSE即不進(jìn)行類型檢查。即不進(jìn)行類型檢查。8.3.8 8.3.8 檢查數(shù)組中是否存在某個值檢查數(shù)組中是否存在某個值8.3.9 8.3.9 其他數(shù)組處理函數(shù)其他數(shù)組處理函數(shù)前面各小節(jié)為讀者介紹了前面各小節(jié)為讀

36、者介紹了PHP中常用的數(shù)組處理函數(shù)。中常用的數(shù)組處理函數(shù)。除了這些函數(shù)之外,除了這些函數(shù)之外,PHP中還有一些其他的數(shù)組處理函數(shù),本中還有一些其他的數(shù)組處理函數(shù),本小節(jié)就選取其中有代表性的函數(shù)為讀者作簡單要介紹。小節(jié)就選取其中有代表性的函數(shù)為讀者作簡單要介紹。1計算數(shù)組的交集計算數(shù)組的交集2檢查數(shù)組是否有某個鍵名檢查數(shù)組是否有某個鍵名3返回數(shù)組鍵名返回數(shù)組鍵名4計算數(shù)組所有值的和計算數(shù)組所有值的和5返回數(shù)組所有值返回數(shù)組所有值8.4 8.4 操作日期時間操作日期時間日期時間的操作在日期時間的操作在PHP編程中也占有一席之地,比編程中也占有一席之地,比較常用的如:獲取當(dāng)前時間、獲取微秒數(shù)等等。本

37、節(jié)來介紹較常用的如:獲取當(dāng)前時間、獲取微秒數(shù)等等。本節(jié)來介紹一下在一下在PHP中的日期與時間的操作。中的日期與時間的操作。8.4.1 8.4.1 使用前的準(zhǔn)備使用前的準(zhǔn)備由于在由于在PHP5新增加了時區(qū)選項這一設(shè)置,其默認(rèn)值為新增加了時區(qū)選項這一設(shè)置,其默認(rèn)值為格林威治時間。而中國大部分所在時區(qū)為東八區(qū),如果采用默格林威治時間。而中國大部分所在時區(qū)為東八區(qū),如果采用默認(rèn)設(shè)置則使用的時間函數(shù)所獲取的結(jié)果就會比真實時間晚認(rèn)設(shè)置則使用的時間函數(shù)所獲取的結(jié)果就會比真實時間晚8個個小時。所以在使用所有的日期時間函數(shù)進(jìn)行相關(guān)操作之前需要小時。所以在使用所有的日期時間函數(shù)進(jìn)行相關(guān)操作之前需要先對該選項進(jìn)行設(shè)

38、置。其設(shè)置方法如下:先對該選項進(jìn)行設(shè)置。其設(shè)置方法如下:(1)打開)打開PHP的配置文件的配置文件php.ini。(2)查找)查找date.timezone選項并去掉行首的分號。選項并去掉行首的分號。(3)在)在“”號后面加號后面加Asia/Shanghai,保存,保存php.ini配配置文件。置文件。(4)重啟)重啟Apache服務(wù)即可。服務(wù)即可。經(jīng)過上述修改,使用日期時間函數(shù)即可獲取到正確的經(jīng)過上述修改,使用日期時間函數(shù)即可獲取到正確的值。值。8.4.2 8.4.2 格式化日期時間格式化日期時間使用使用PHP中的中的date()函數(shù),可以格式化一個本地時間或者日期函數(shù),可以格式化一個本地時

39、間或者日期。該函數(shù)是最常用的日期時間函數(shù)之一,其語法格式如以下代碼所示。該函數(shù)是最常用的日期時間函數(shù)之一,其語法格式如以下代碼所示。string date ( string format , int timestamp )以上代碼中參數(shù)以上代碼中參數(shù)format為指定需要返回的日期時間的格式,為指定需要返回的日期時間的格式,以字符串表示,可選參數(shù)以字符串表示,可選參數(shù)timestamp為一個時間戳記,以數(shù)值表示,為一個時間戳記,以數(shù)值表示,其默認(rèn)值為當(dāng)前時間戳記。執(zhí)行該函數(shù)會返回將整數(shù)其默認(rèn)值為當(dāng)前時間戳記。執(zhí)行該函數(shù)會返回將整數(shù)timestamp按照按照給定的格式字串而產(chǎn)生的表示日期時間的字

40、符串,如果沒有給出時間給定的格式字串而產(chǎn)生的表示日期時間的字符串,如果沒有給出時間戳則使用本地當(dāng)前時間。戳則使用本地當(dāng)前時間。8.4.2 8.4.2 格式化日期時間格式化日期時間8.4.3 8.4.3 取得日期時間信息取得日期時間信息使用使用PHP中的中的getdate()函數(shù)將會取得日期時間的相函數(shù)將會取得日期時間的相關(guān)信息。該函數(shù)的語法格式如下所示:關(guān)信息。該函數(shù)的語法格式如下所示:array getdate ( int $timestamp )該函數(shù)有一個可選參數(shù)該函數(shù)有一個可選參數(shù)$timestamp,該參數(shù)為一個,該參數(shù)為一個日期時間戳記,如果省略該參數(shù),默認(rèn)將使用當(dāng)前時間。執(zhí)日期時

41、間戳記,如果省略該參數(shù),默認(rèn)將使用當(dāng)前時間。執(zhí)行函數(shù)將返回一個包含指定日期相關(guān)信息的關(guān)聯(lián)數(shù)組。行函數(shù)將返回一個包含指定日期相關(guān)信息的關(guān)聯(lián)數(shù)組。8.4.4 8.4.4 返回當(dāng)前返回當(dāng)前UnixUnix時間戳記時間戳記使用使用time()函數(shù)可以獲取當(dāng)前的函數(shù)可以獲取當(dāng)前的Unix時間戳記。該函時間戳記。該函數(shù)多用于先求得當(dāng)前時間戳記,然后再把相應(yīng)的結(jié)果應(yīng)用于數(shù)多用于先求得當(dāng)前時間戳記,然后再把相應(yīng)的結(jié)果應(yīng)用于如如date()或者或者getdate()函數(shù)中。該函數(shù)不需要參數(shù),執(zhí)行函數(shù)函數(shù)中。該函數(shù)不需要參數(shù),執(zhí)行函數(shù)將返回自從將返回自從Unix紀(jì)元(格林威治時間紀(jì)元(格林威治時間1970年年1月

42、月1日日00:00:00)到當(dāng)前時間的秒數(shù)。到當(dāng)前時間的秒數(shù)。8.4.5 8.4.5 將英文文本的日期時間描述解析為將英文文本的日期時間描述解析為UnixUnix時間戳?xí)r間戳函數(shù)函數(shù)strtotime()可以將使用英文描述的日期時間解析可以將使用英文描述的日期時間解析為為Unix時間戳記,該函數(shù)語法格式如下所示:時間戳記,該函數(shù)語法格式如下所示:int strtotime(string $time , int $now )以上代碼中參數(shù)以上代碼中參數(shù)$time為被解析的字符串,格式根據(jù)為被解析的字符串,格式根據(jù)GNU(革奴)日期輸入格式的語法??蛇x參數(shù)(革奴)日期輸入格式的語法??蛇x參數(shù)$no

43、w是用來是用來計算返回值的時間戳。執(zhí)行函數(shù)將會返回指定的時間戳記。計算返回值的時間戳。執(zhí)行函數(shù)將會返回指定的時間戳記。8.5 8.5 數(shù)據(jù)處理實例數(shù)據(jù)處理實例數(shù)據(jù)處理在數(shù)據(jù)處理在PHP編程中占有很重要的位置,同樣在編程中占有很重要的位置,同樣在一些一些PHP面試中經(jīng)常會涉及到數(shù)據(jù)處理的相關(guān)內(nèi)容。本節(jié)就面試中經(jīng)常會涉及到數(shù)據(jù)處理的相關(guān)內(nèi)容。本節(jié)就找其中較有代表性的幾個題目給大家一些解決方案,使讀者找其中較有代表性的幾個題目給大家一些解決方案,使讀者有所啟發(fā),再碰到同樣的題目時即可迎刃而解。有所啟發(fā),再碰到同樣的題目時即可迎刃而解。8.5.1 8.5.1 處理數(shù)值處理數(shù)值【范例范例8-50】題目:在不使用第三個變量的情況下,題目:在不使用第三個變量的情況下,交換兩個數(shù)值型變量的值。交換兩個數(shù)值型變量的值。通常的交換數(shù)值操作是非常簡單的,比如下面的代碼通常的交換數(shù)值操作是非常簡單的,比如下面的代碼:$c=$a;$a=$b;$b=$c;經(jīng)過上面的操作即可實現(xiàn)經(jīng)過上面的操作即可實現(xiàn)$a與與$b內(nèi)容的交換。但現(xiàn)在內(nèi)容的交換

溫馨提示

  • 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

提交評論