版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章PHP的數(shù)據(jù)處理數(shù)據(jù)處理在PHP編程中有重要的地位,不論是編什么樣的程序都少不了和各種各樣的數(shù)據(jù)打交道。本章就來(lái)為讀者介紹在使用PHP進(jìn)行編程時(shí)如何對(duì)各種各樣的數(shù)據(jù)進(jìn)行處理。包括怎樣判斷數(shù)據(jù)類型、PHP中常用的數(shù)學(xué)函數(shù)、PHP中常用的字符串函數(shù)、PHP中常用的數(shù)組函數(shù)等。7.1怎樣判斷數(shù)據(jù)類型在使用數(shù)據(jù)變量時(shí),先弄清該變量屬于什么類型是很有必要的。只有知道了數(shù)據(jù)變量的類型,才能對(duì)它進(jìn)行相關(guān)的操作。7.1怎樣判斷數(shù)據(jù)類型在PHP中有專門的函數(shù)來(lái)判斷數(shù)據(jù)的類型,這就是is系列函數(shù)。常用的判斷數(shù)據(jù)類型函數(shù)見表。【示例7-1】以下代碼演示表中函數(shù)的使用方法。函數(shù)名作用返回值is_array(mixedvar)判斷變量是否為數(shù)組如果參數(shù)var是數(shù)組就返回TRUE,否則返回FALSEis_bool(mixedvar)判斷變量是否為布爾型如果參數(shù)var是布爾型值即TRUE或FALSE就返回TRUE,否則返回FALSEis_float(mixedvar)判斷變量是否為浮點(diǎn)數(shù)果參數(shù)var是浮點(diǎn)數(shù)則返回TRUE,否則返回FALSEis_int(mixedvar)判斷變量是否為整型變量如果參數(shù)var為整型變量INT則返回TRUE,否則返回FALSEis_null(mixedvar)判斷變量是否為NULL值如果參數(shù)var未被定義或者被設(shè)置為NULL或者雖然已經(jīng)被定義但又被unset()取消定義,則返回TRUE,否則返回FALSEis_numeric(mixedvar)判斷變量是否為數(shù)字或者數(shù)字字符串如果參數(shù)var為數(shù)字或者數(shù)字字符串則返回TRUE,否則返回FALSEis_object(mixedvar)判斷變量是否為一個(gè)對(duì)象如果參數(shù)var為OBJECE就返回TRUE,否則返回FALSEis_scalar(mixedvar)判斷變量是否為一個(gè)標(biāo)量(標(biāo)量即最小的變量單位,只包括integer、float、string或boolean的變量,而array(數(shù)組)、object(對(duì)象)和resource(資源)則不是標(biāo)量)如果參數(shù)var為標(biāo)量則返回TRUE,否則返回FALSEis_string(mixedvar)判斷變量是否為字符串如果參數(shù)var為字符串返回TRUE,否則返回FALSEisset(mixedvar)判斷變量是否設(shè)置如果變量存在就返回TRUE,否則返回FALSE。另外被設(shè)置為NULL值的變量在使用isset()時(shí)也將返回FALSE該函數(shù)只能用于變量,因?yàn)閭鬟f任何其它參數(shù)都將造成解析錯(cuò)誤7.2PHP中常用的數(shù)學(xué)函數(shù)數(shù)學(xué)運(yùn)算和數(shù)字的操作在PHP的數(shù)據(jù)處理中占有很大比重。無(wú)論是大型程序,還是只有幾行代碼的小程序,只要牽涉到數(shù)字都需要用數(shù)學(xué)的方法進(jìn)行處理。7.2.1數(shù)學(xué)計(jì)算函數(shù)這一小節(jié)為讀者介紹常用的數(shù)學(xué)計(jì)算函數(shù),詳見表?!臼纠?-2】以下代碼演示表中所示函數(shù)的使用方法。函數(shù)名作用返回值abs(mixedvar)絕對(duì)值函數(shù),返回參數(shù)var的絕對(duì)值如果參數(shù)為正,直接返回;如果為負(fù),去掉負(fù)號(hào)后返回ceil(floatvalue)進(jìn)一法取整數(shù)函數(shù),返回不小于參數(shù)value的下一個(gè)整數(shù)。如果參數(shù)為整型數(shù),直接返回參數(shù);如果參數(shù)為浮點(diǎn)型數(shù),則返回值為參數(shù)的小數(shù)部分進(jìn)一位exp(floatarg)計(jì)算指數(shù)函數(shù),計(jì)算e的指數(shù)。用“e”作為自然對(duì)數(shù)的底2.718282返回e的arg次方值floor(float,value)舍去法取整數(shù)函數(shù),返回不大于參數(shù)value的下一個(gè)整數(shù)如果參數(shù)為整型數(shù),直接返回參數(shù);如果參數(shù)為浮點(diǎn)型數(shù),則返回值為參數(shù)舍去小數(shù)部分后的值log10()計(jì)算對(duì)數(shù)函數(shù)。返回以10為底的對(duì)數(shù)返回以10為底的對(duì)數(shù)值sqrt(floatarg)計(jì)算平方根函數(shù)。返回參數(shù)arg的平方根返回參數(shù)arg的平方根7.2.2數(shù)學(xué)三角函數(shù)這一小節(jié)來(lái)介紹常用的數(shù)學(xué)三角函數(shù)。在介紹三角函數(shù)之前先介紹一個(gè)函數(shù):deg2rad()函數(shù),它的作用是把角度轉(zhuǎn)換為弧度。學(xué)過三角函數(shù)的讀者都知道,三角函數(shù)就是指正弦、余弦、正切、余切以及這些函數(shù)對(duì)應(yīng)的反函數(shù)等。PHP中也有類似的函數(shù),并且表達(dá)方法幾乎與數(shù)學(xué)的表達(dá)方法一模一樣。PHP中的常用三角函數(shù)有以下幾個(gè),見表。函數(shù)名作用返回值sin(floatarg)正弦函數(shù)回參數(shù)arg的正弦值,參數(shù)arg為弧度cos(floatarg)余弦函數(shù)返回參數(shù)arg的余弦值,參數(shù)arg為弧度tan(floatarg)正切函數(shù)回參數(shù)arg的正切值,參數(shù)arg為弧度asin(floatarg)反正弦函數(shù)返回參數(shù)arg的反正弦值,參數(shù)arg為弧度。函數(shù)asin()是函數(shù)sin()的反函數(shù)acos(floatarg)反余弦函數(shù)返回參數(shù)arg的反余弦值,參數(shù)arg為弧度。函數(shù)acos()是函數(shù)cos()的反函數(shù)atan(floatarg)反正切函數(shù)返回參數(shù)arg的反正切值,參數(shù)arg為弧度。函數(shù)atan()是函數(shù)tan()的反函數(shù)7.2.2數(shù)學(xué)三角函數(shù)【示例7-3】以下代碼演示三角函數(shù)的使用?!臼纠?-4】以下代碼演示使用三角函數(shù)結(jié)合GD函數(shù)來(lái)實(shí)現(xiàn)畫圖功能。7.2.3很有用的最值函數(shù)PHP中的最值函數(shù)有以下幾個(gè):max(numberarg1,numberarg2),求最大值函數(shù),返回參數(shù)中數(shù)值最大的值。min(numberarg1,numberarg2),求最小值函數(shù),返回參數(shù)中數(shù)值最小的值?!臼纠?-5】以下代碼演示max()函數(shù)的使用方法?!臼纠?-6】以下代碼演示min()函數(shù)的使用方法。7.2.4產(chǎn)生隨機(jī)數(shù)函數(shù)在進(jìn)行PHP編程時(shí),有時(shí)需要一些隨機(jī)的數(shù)字,比如用戶身份驗(yàn)證。為了防止站外提交,生成一組隨機(jī)數(shù)字,然后在后臺(tái)判斷。PHP中有專門的隨機(jī)數(shù)函數(shù)。rand([intmin,intmax])該函數(shù)用于產(chǎn)生一個(gè)隨機(jī)數(shù)。隨機(jī)數(shù)的范圍在參數(shù)min與max之間?!臼纠?-7】以下代碼演示rand()函數(shù)的使用方法。7.2.5進(jìn)制轉(zhuǎn)換函數(shù)在實(shí)際工作中,有時(shí)需要進(jìn)行進(jìn)制的轉(zhuǎn)換。PHP庫(kù)函數(shù)中也為用戶準(zhǔn)備好了這樣的函數(shù)。PHP中的進(jìn)制轉(zhuǎn)換函數(shù)一共有六個(gè),見表:函數(shù)名作用返回值bindec(stringbinary_string)二進(jìn)制轉(zhuǎn)換為十進(jìn)制返回參數(shù)binary_string二進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制等價(jià)值decbin(intnumber)十進(jìn)制轉(zhuǎn)化為二進(jìn)制返回參數(shù)int十進(jìn)制數(shù)對(duì)應(yīng)的二進(jìn)制等價(jià)值。dechex(intnumber)十進(jìn)制轉(zhuǎn)化為十六進(jìn)制返回參數(shù)int十進(jìn)制數(shù)對(duì)應(yīng)的十六進(jìn)制等價(jià)值decoct(intnumber)十進(jìn)制轉(zhuǎn)化為八進(jìn)制返回參數(shù)int十進(jìn)制數(shù)對(duì)應(yīng)的八進(jìn)制等價(jià)值hexdec(stringhex_string)十六進(jìn)制轉(zhuǎn)化為十進(jìn)制返回參數(shù)hex_string十六進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制等價(jià)值ctdec(stringoctal_string)八進(jìn)制轉(zhuǎn)換為十進(jìn)制返回參數(shù)octal_string八進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制等價(jià)值7.2.5進(jìn)制轉(zhuǎn)換函數(shù)【示例7-8】以下代碼演示如何使用進(jìn)制轉(zhuǎn)換函數(shù)。除了這六個(gè)函數(shù)以外,PHP中還有一個(gè)函數(shù):base_convert(stringnumber,Intfrombase
,intto
base)該函數(shù)可以實(shí)現(xiàn)任意進(jìn)制之間的轉(zhuǎn)換?!臼纠?-9】以下代碼演示如何使用base_convert()函數(shù)來(lái)進(jìn)行進(jìn)制轉(zhuǎn)換。7.2.6其他數(shù)學(xué)函數(shù)PHP中還有以下幾個(gè)常用的數(shù)學(xué)函數(shù):hypot()函數(shù)、pi()函數(shù)等。hypot(floatx,floaty)該函數(shù)用來(lái)計(jì)算直角三角形斜邊的長(zhǎng)度。返回值為sqrt(x*x+y*y)。pi()函數(shù),此函數(shù)無(wú)參數(shù),返回圓周率的近似值:3.1415926535898。技巧:可以使用系統(tǒng)預(yù)定義常量:M_PI來(lái)代替這個(gè)函數(shù)?!臼纠?-10】以下代碼演示hypot()函數(shù)的使用?!臼纠?-11】以下代碼演示pi()函數(shù)使用。7.3PHP中常用的字符串函數(shù)字符串操作的重要性不亞于數(shù)學(xué)計(jì)算。在PHP編程過程中,不管是進(jìn)行文本的處理還是字符的操作都離不開字符串。大量信息都是用字符串來(lái)存儲(chǔ)的。所以說只有善于處理字符串才能稱得上是一個(gè)合格的程序員。這一節(jié)就來(lái)講解PHP中常用的字符串函數(shù)。7.3.1取得字符串長(zhǎng)度要想處理一個(gè)字符串,第一步就要了解該字串的長(zhǎng)度。PHP中需要通過相應(yīng)的函數(shù)來(lái)取得,這個(gè)函數(shù)就是strlen():strlen(string)該函數(shù)用來(lái)取得字符串的長(zhǎng)度?!臼纠?-12】以下代碼演示strlen()函數(shù)的使用。7.3.2輸出字符串PHP中用于輸出字符串的函數(shù)有以下幾個(gè):echo函數(shù),用于字符串的輸出。print()函數(shù),用于輸出字符串:print(string)參數(shù)string為字符串變量或者常量。函數(shù)返回一個(gè)布爾值。當(dāng)執(zhí)行成功時(shí)返回true,反之返回false。printf()函數(shù),用于將字符串格式化輸出:printf(stringformat,mixed[args])輸出格式依照參數(shù)format的內(nèi)容,具體內(nèi)容見下面的sprintf()格式化字符串函數(shù)。7.3.2輸出字符串sprintf()函數(shù),用于格式化字符串。sprintf(stringformat,mixed[args])參數(shù)format是轉(zhuǎn)換的格式,以百分比符號(hào)%開始到轉(zhuǎn)換字符為止。格式的內(nèi)容按照順序?yàn)椋禾羁兆衷?表示空格填0;空格是內(nèi)定值。對(duì)齊方式:內(nèi)定值為向右對(duì)齊,負(fù)號(hào)(-)表向左對(duì)齊。欄位寬度:為最小寬度。精確度:指在小數(shù)點(diǎn)后的浮點(diǎn)數(shù)位數(shù)。7.3.2輸出字符串型態(tài):如表所示。因?yàn)閑cho與print()函數(shù)相對(duì)簡(jiǎn)單,這里就不多做介紹,重點(diǎn)來(lái)介紹一下sprintf()這個(gè)格式化函數(shù)。%印出百分比符號(hào)不轉(zhuǎn)換b整數(shù)轉(zhuǎn)成二進(jìn)制c整數(shù)轉(zhuǎn)成對(duì)應(yīng)的ASCII字符d整數(shù)轉(zhuǎn)成十進(jìn)制f倍精確度數(shù)字轉(zhuǎn)成浮點(diǎn)數(shù)o整數(shù)轉(zhuǎn)成八進(jìn)制s整數(shù)轉(zhuǎn)成字串x整數(shù)轉(zhuǎn)成小寫十六進(jìn)制X整數(shù)轉(zhuǎn)成大寫十六進(jìn)制7.3.2輸出字符串關(guān)于如何使用sprintf()函數(shù),先來(lái)看一個(gè)經(jīng)典的實(shí)例:01
<?php02
$money1=68.75;03
$money2=54.35;04
$money=$money1+$money2;
//此時(shí)變量$money值為"123.1"05
$formatted=sprintf("%01.2f",$money);
//此時(shí)變量$formatted值為"123.10"06
?>【示例7-13】以下代碼演示sprintf()格式化函數(shù)的使用方法。7.3.3截取字符串在進(jìn)行字符串處理的時(shí)候,有時(shí)需要對(duì)字符串進(jìn)行截取。在PHP中要做到這一點(diǎn)也是很簡(jiǎn)單的,有一個(gè)專門的函數(shù)供用戶調(diào)用,這個(gè)函數(shù)就是substr()。substr(stringstring,intstart,int[length])函數(shù)返回字符串string從start開始的length個(gè)字符。如果length為空,則取從start到字符串結(jié)束。如果start為負(fù)數(shù),則從字符串末尾開始取。如果length為負(fù)則表示取到倒數(shù)第length個(gè)字符?!臼纠?-14】以下代碼演示使用substr()函數(shù)截取字符串。7.3.4按特定字符切開字符串PHP中提供了如下的函數(shù)來(lái)完成這項(xiàng)功能:explode(),切開字符串函數(shù):explode(string
separator,stringstring[,intlimit])本函數(shù)將字符串string依指定的字符或字符串separator分開,如果使用了limit參數(shù)則返回的數(shù)組包含最多l(xiāng)imit個(gè)元素,其中最后一個(gè)元素將包含string的剩余部分。函數(shù)的返回值是以返回字符串為元素的字符串?dāng)?shù)組。split(),用正則表達(dá)式把字符串分割到數(shù)組中。split(stringpattern,stringstirng[,intlimit])本函數(shù)返回一個(gè)字符串?dāng)?shù)組,每個(gè)元素為字符串string經(jīng)過區(qū)分大小寫的正則表達(dá)式pattern作為邊界分割出的子串。如果設(shè)定了limit,則返回的數(shù)組最多包含limit個(gè)元素,其中最后一個(gè)單元包含string中剩余的部分。如果出錯(cuò),則返回false。strtok(),切開字符串函數(shù)。strtok(stringstr,stringtoken)本函數(shù)將傳回字符串str依據(jù)token的值分割的子字符串?!臼纠?-15】以下代碼演示分割字符串函數(shù)的使用。7.3.5去除字符串中的特殊符號(hào)在進(jìn)行實(shí)際PHP編程的時(shí)候,處理的字符串有可能是來(lái)自于網(wǎng)頁(yè)中,里面可能包含有HTML或者PHP標(biāo)記。這時(shí)就需要把它們?nèi)コ笤僮鎏幚?。在PHP中也有專門去除字符串中特殊符號(hào)標(biāo)記的字符串處理函數(shù)strip_tags()。strip_tags(stringstr)該函數(shù)用于去掉字符串參數(shù)str中的HTML及PHP標(biāo)記,將處理之后的字符串作為函數(shù)的返回值。【示例7-16】以下代碼演示如何使用strip_tags()函數(shù)來(lái)去除字符串中的特殊標(biāo)記。7.3.6轉(zhuǎn)換字符串中的特殊符號(hào)為HTML標(biāo)記編寫Web互動(dòng)網(wǎng)頁(yè)時(shí),安全問題是一定要考慮的。一個(gè)不可忽視的問題就是對(duì)用戶提交信息的處理。在PHP中有一個(gè)函數(shù)實(shí)現(xiàn)這樣的功能:把用戶提交內(nèi)容(字符串)中的特殊符號(hào)轉(zhuǎn)換為HTML實(shí)體,這個(gè)函數(shù)就是:htmlspecialchars()。htmlspecialchars(stringstring)該函數(shù)實(shí)現(xiàn)功能:將字符串參數(shù)string中的特殊符號(hào)(如:<、>、"等)轉(zhuǎn)化為HTML標(biāo)記。其具體轉(zhuǎn)換內(nèi)容如下:&,轉(zhuǎn)換成&。",轉(zhuǎn)換成"。<,轉(zhuǎn)換成<。>,轉(zhuǎn)換成>?!臼纠?-17】以下代碼演示如何使用htmlspecialchars()函數(shù)對(duì)字符串進(jìn)行轉(zhuǎn)換處理。7.3.7加入轉(zhuǎn)義符在數(shù)據(jù)庫(kù)操作時(shí),如果把未經(jīng)操作的單引號(hào)寫入庫(kù)里就會(huì)使SQL語(yǔ)句發(fā)生錯(cuò)誤。所以給特殊字符加上轉(zhuǎn)義符就顯得尤為重要。同理,顯示的時(shí)候就要把轉(zhuǎn)義符去除,這樣庫(kù)里的內(nèi)容才能正常顯示。因此加入轉(zhuǎn)義符函數(shù)addslashes(stringstr)和去除轉(zhuǎn)義符函數(shù)stripslashes(stringstr)在PHP里也經(jīng)常用到。7.3.8比較字符串函數(shù)兩個(gè)數(shù)值,不論是整型還是浮點(diǎn)型都能夠比較大小。而兩個(gè)字符串也可以比較大小。在PHP中,有一個(gè)函數(shù)專門用來(lái)比較字符串的大小。這個(gè)函數(shù)就是strcmp()。其使用格式如下:intstrcmp(stringstr1,stringstr2)參數(shù)str1與str2表示兩個(gè)字符串變量,函數(shù)返回一個(gè)整數(shù)。如果str1大于str2則返回正數(shù);如果str1小于str2則返回負(fù)數(shù);如果兩個(gè)字符串完全一致則返回0?!臼纠?-18】以下代碼演示如何使用strcmp()函數(shù)。7.3.9改變字符串的大小寫在進(jìn)行字符串處理的時(shí)候,有時(shí)需要對(duì)字符串中字母的大小寫進(jìn)行轉(zhuǎn)換。這時(shí)就需要用到strtolower()函數(shù)和strtoupper()函數(shù)。stringstrtolower(stringstr)該函數(shù)用于把字符串參數(shù)str中的所有大寫字母轉(zhuǎn)換為小寫字母,把轉(zhuǎn)換后的新字符串作為函數(shù)的返回值;stringstrtoupper(stringstr)該函數(shù)用于把字符串參數(shù)str中的所有小寫字母轉(zhuǎn)換為大寫字母,把轉(zhuǎn)換后的新字符串作為函數(shù)的返回值。【示例7-19】以下代碼演示改變字符串大小寫函數(shù)的使用。7.3.10其它常用字符串處理函數(shù)除了以上幾小節(jié)介紹的字符串處理函數(shù)之外,在進(jìn)行PHP編程及字符串處理過程中,還有其它一些常用的字符串處理函數(shù)。由于相對(duì)于前幾小節(jié)介紹的函數(shù),這些函數(shù)使用頻率相對(duì)較低。所以只對(duì)它們的使用格式、參數(shù)、返回值等情況做簡(jiǎn)單介紹。stringchop()函數(shù):stringchop(stringstr)該函數(shù)用于去除字符串str中的連續(xù)空白,返回值為處理后的字符串;stringltrim()函數(shù):stringltrim(stringstr)該函數(shù)功能與chop類似,也是去除字符串中的連續(xù)空白帶(whitespace),并把處理結(jié)果返回;stringmd5()函數(shù):stringmd5(stringstr)該函數(shù)用于把字符串str進(jìn)行MD5加密,并把加密后的字符串作為函數(shù)的返回值。這個(gè)函數(shù)在處理用戶的密碼時(shí)經(jīng)常用到,一般是把用戶密碼經(jīng)md5()函數(shù)加密后再入庫(kù);stringnl2br()函數(shù):stringnl2br(stringstr)該函數(shù)用于把字符串str中的回車換行轉(zhuǎn)換為HTML標(biāo)記中的<br>,并把處理結(jié)果返回。這也是一個(gè)很有用的函數(shù),特別是用在用戶提交的內(nèi)容中存在換行時(shí),使用這個(gè)函數(shù)就能保持用戶輸入的格式;stringstr_replace()函數(shù):stringstr_replace(stringneedle,stringstr,stringhaystack)該函數(shù)將字符串str代入haystack字符串中,將所有的needle置換成str。例如:使用str_replace("a","b","abcd"),函數(shù)將返回“bbcd”。7.4PHP中常用的數(shù)組處理函數(shù)在PHP編程過程中,有相當(dāng)大的部分是與數(shù)組打交道。入庫(kù)的內(nèi)容、統(tǒng)計(jì)相關(guān)內(nèi)容等等操作都離不開數(shù)組,很多信息都是用數(shù)組作為載體的。所以數(shù)組的操作在PHP編程中占有很大的比重,只有熟練地操作數(shù)組才能熟練編寫PHP程序。這一節(jié)就來(lái)介紹PHP中常用的數(shù)組處理函數(shù)。7.4.1新建一個(gè)數(shù)組既然要操作數(shù)組,第一步就是要新建一個(gè)數(shù)組。新建數(shù)組也有相關(guān)的函數(shù),這個(gè)函數(shù)就是array()。array(…)函數(shù)用來(lái)新建一個(gè)數(shù)組,傳回的數(shù)值是數(shù)列形態(tài)。參數(shù)可以是帶有=>運(yùn)算符的索引?!臼纠?-20】以下代碼演示array()函數(shù)的使用,同時(shí)也復(fù)習(xí)一下如何新建一個(gè)數(shù)組。7.4.2計(jì)算數(shù)組的元素個(gè)數(shù)在對(duì)一個(gè)數(shù)組操作之前,得知數(shù)組的元素個(gè)數(shù)是很有必要的。在PHP中計(jì)算數(shù)組元素個(gè)數(shù)的方法非常簡(jiǎn)單,可以使用count()函數(shù)來(lái)完成。count(mixedvar)該函數(shù)的參數(shù)可以是數(shù)組或者為整數(shù)變量。如果參數(shù)是數(shù)組則傳回?cái)?shù)組元素的個(gè)數(shù);如果參數(shù)為整數(shù)則分兩種情況:如果整數(shù)變量還沒有值則傳回“0”,如果已經(jīng)賦值則傳回“1”?!臼纠?-21】以下代碼演示count()函數(shù)的使用方法。7.4.3對(duì)數(shù)組排序在實(shí)際PHP編程時(shí),有時(shí)需要對(duì)數(shù)組進(jìn)行排序。通常對(duì)數(shù)組進(jìn)行排序的方法有幾種:冒泡法、對(duì)分法等。但是在PHP中對(duì)數(shù)組的排序就變得相當(dāng)?shù)暮?jiǎn)單,有專門對(duì)數(shù)組進(jìn)行排序的sort()和rsort()函數(shù)。voidsort(arrayarray)該函數(shù)對(duì)數(shù)組進(jìn)行排序,使數(shù)組按照從小到大的順序重新排列;voidrsort(arrayarry)該函數(shù)和sort()函數(shù)一樣對(duì)數(shù)組進(jìn)行排序,與sort()函數(shù)不同的是rsort()函數(shù)將使數(shù)組按從大到小的順序重新排列?!臼纠?-22】以下代碼演示使用sort()和rsort()函數(shù)實(shí)現(xiàn)對(duì)數(shù)組進(jìn)行排序操作。7.4.4對(duì)數(shù)組進(jìn)行自定義排序有的時(shí)候,單純使用上一小節(jié)介紹的sort()函數(shù)或rsort()函數(shù)均不能完全滿足對(duì)數(shù)組排序的要求。如下面的數(shù)組:<?php$temp=array(”班長(zhǎng)”,”科代表”,”副班長(zhǎng)”,”團(tuán)支書”);?>如果想要實(shí)現(xiàn)這樣的排序:團(tuán)支書>班長(zhǎng)>副班長(zhǎng)>科代表。這時(shí)不管是使用sort()函數(shù)還是使用rsort()函數(shù),都不能勝任。因?yàn)檫@種排序標(biāo)準(zhǔn)是自定義的。出現(xiàn)這種情況,就要使用另一個(gè)PHP數(shù)組操作函數(shù):usort()了。usort()的使用格式如下:voidusort(arrayarray,functioncmp_function)該函數(shù)用來(lái)對(duì)數(shù)組進(jìn)行排序,使數(shù)組按照用戶自定義比較函數(shù)所規(guī)定的順序重新排列?!臼纠?-23】以下代碼演示usort()函數(shù)的使用方法。7.4.5移動(dòng)數(shù)組指針每一個(gè)數(shù)組變量都有一個(gè)內(nèi)部指針,它指向當(dāng)前的數(shù)組元素。在進(jìn)行PHP編程時(shí),有時(shí)需要對(duì)數(shù)組的指針進(jìn)行移動(dòng)操作。在PHP庫(kù)函數(shù)中,有一組函數(shù)來(lái)實(shí)現(xiàn)這一操作。這些函數(shù)有以下幾個(gè):current()函數(shù),傳回?cái)?shù)組當(dāng)前指針指向的元素;end()函數(shù),將數(shù)組的指針移動(dòng)到數(shù)組尾部,即指向數(shù)組最后的元素;next()函數(shù),將數(shù)組的指針向后移動(dòng)一位,即指向當(dāng)前的后一個(gè)元素;prev()函數(shù),將數(shù)組的指針向前移動(dòng)一位,即指向當(dāng)前的前一個(gè)元素;reset()函數(shù),將數(shù)組的指針移動(dòng)到數(shù)組頭部,即指向數(shù)組的第一個(gè)元素?!臼纠?-24】以下代碼演示數(shù)組指針操作函數(shù)的使用方法。7.4.6獲取數(shù)組當(dāng)前元素通過7.4.5小節(jié)對(duì)PHP中移動(dòng)數(shù)組指針函數(shù)的介紹,讀者知道要獲得數(shù)組當(dāng)前元素,可以使用的方法就是使用current()函數(shù)。mixedcurrent(arrayarray)該函數(shù)的返回值即為當(dāng)前數(shù)組指針指向的元素。7.4.7移去數(shù)組中重復(fù)的值如果一個(gè)數(shù)組中有大量的數(shù)據(jù),在進(jìn)行數(shù)組處理的時(shí)候,將其中重復(fù)冗余數(shù)據(jù)的值移除去就顯得很有必要。在PHP中有一個(gè)函數(shù)可以移去數(shù)組中重復(fù)的值,這個(gè)函數(shù)就是:array_unique()。其格式如下:arrayarray_unique(arrayarray)array_unique()函數(shù)用于移去數(shù)組中重復(fù)的值。該函數(shù)將數(shù)組參數(shù)array中重復(fù)的值移除,將處理過的新數(shù)組作為函數(shù)的返回值返回?!臼纠?-25】以下代碼演示array_unique()函數(shù)的使用方法。7.4.8計(jì)算數(shù)組中所有值出現(xiàn)的次數(shù)在使用數(shù)組時(shí),如
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高校與企業(yè)合作辦學(xué)項(xiàng)目合同3篇
- 二零二五年度特種車輛安裝與安全培訓(xùn)合同3篇
- 西安醫(yī)學(xué)高等??茖W(xué)?!渡虡I(yè)影片綜合案例制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版1209兩人合伙經(jīng)營(yíng)寵物美容與寄養(yǎng)中心協(xié)議3篇
- 二零二五年度珠寶首飾交易居間代理協(xié)議3篇
- 新疆機(jī)電職業(yè)技術(shù)學(xué)院《影視劇美術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 個(gè)體經(jīng)銷商專屬銷售授權(quán)協(xié)議(2024年度)版B版
- 通化師范學(xué)院《二維動(dòng)畫技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024離婚債務(wù)分割詳細(xì)合同書版B版
- 二零二五版廚具設(shè)備售后服務(wù)與技術(shù)培訓(xùn)合同3篇
- 銀行會(huì)計(jì)主管年度工作總結(jié)2024(30篇)
- 教師招聘(教育理論基礎(chǔ))考試題庫(kù)(含答案)
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 上海市12校2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 長(zhǎng)亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡(jiǎn)版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲(chǔ)系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》真題及解析
評(píng)論
0/150
提交評(píng)論