版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.1數(shù)組的概述分類及聲明陳學(xué)平1數(shù)組的概述2數(shù)組分類一維數(shù)組聲明二維數(shù)組的聲明3數(shù)組的聲明目錄011數(shù)組的概述1數(shù)組的概述PHP中的數(shù)組實(shí)際上是一個(gè)有序圖。圖是一種把values映射到keys的類型。此類型在很多方面做了優(yōu)化,因此可以把它當(dāng)成真正的數(shù)組來(lái)使用,或列表(矢量),散列表(是圖的一種實(shí)現(xiàn)),字典,集合,棧,隊(duì)列以及更多可能性。因?yàn)榭梢杂昧硪粋€(gè)PHP數(shù)組作為值,也可以很容易地模擬樹(shù)。所謂的數(shù)組下標(biāo)可以視為資料內(nèi)容在此數(shù)組中的識(shí)別名稱,通常被稱為數(shù)組下標(biāo)。當(dāng)索引值為數(shù)值時(shí),也代表此資料內(nèi)容在數(shù)組中的儲(chǔ)存位置。數(shù)組中有幾個(gè)層次就被稱為幾維數(shù)組。022數(shù)組的分類數(shù)組的分類4.2數(shù)組分類:在PHP中有兩種數(shù)組:索引數(shù)組和關(guān)聯(lián)數(shù)組。索引(indexed)數(shù)組的索引值是整數(shù),以0開(kāi)始。當(dāng)通過(guò)位置來(lái)標(biāo)識(shí)東西時(shí)用索引數(shù)組。關(guān)聯(lián)(associative)數(shù)組以字符串做為索引值,關(guān)聯(lián)數(shù)組更像操作表。索引值為列名,用于訪問(wèn)列的數(shù)據(jù)。033數(shù)組的聲明3.1直接賦值的方式聲明數(shù)組數(shù)組常用的賦值方式由于PHP是屬于弱類型數(shù)據(jù),因此源代碼中的數(shù)組并不需要經(jīng)過(guò)特別的聲明操作,直接將一組數(shù)值指定給某一數(shù)組元素即可。一般情況下數(shù)組的賦值有兩種方式:直接賦值方式如:$a[0]='spam@126.com';$a[1]='abuse@';使用array函數(shù)如:$a=array('spam@126.com','abuse@');直接賦值格式:$數(shù)組變量名[索引值]=資料內(nèi)容3.1直接賦值的方式聲明數(shù)組數(shù)組常用的賦值方式其中索引值(下標(biāo))可以是一個(gè)字符串或一個(gè)整數(shù)。等價(jià)于整數(shù)(不以0開(kāi)頭)的字符串值被當(dāng)作整數(shù)對(duì)待。因此,數(shù)組$array[3]與$array[‘3’]是引用相同的元素。但是$array[‘03’]引用的另外不同的元素。3.1直接賦值的方式聲明數(shù)組最常用數(shù)組數(shù)組中索引值(下標(biāo))只有一個(gè)的數(shù)組稱為一維數(shù)組。在數(shù)組中這是最簡(jiǎn)單的,也是最常用的了。實(shí)例1:一維索引數(shù)組實(shí)例代碼如下:$a[0]=1;$a[1]=2;$a[2]=3;$b[]=1;$b[]=2;$b[]=3;$b[6]=4;$b[]=5;<?php實(shí)例1:一維索引數(shù)組echo$a[2].'<BR/>';01?>02輸出03304505上面實(shí)例數(shù)組的下標(biāo)是數(shù)字,這種數(shù)組是索引數(shù)組。06實(shí)例2:關(guān)聯(lián)數(shù)組07實(shí)例代碼如下:08<?php09echo$b[7];10實(shí)例1:一維索引數(shù)組$a["name"]="zhang";01$a["age"]=23;02$b["name"]="lisi";03$b[]="woman";04$b["age"]=28;05$b[8]=4;06$b[]=5;07echo$a['sex'].'<BR/>';08echo$b[9];?>09$a["sex"]="man";10實(shí)例1:一維索引數(shù)組輸出結(jié)果:01man02503上面實(shí)例是一維關(guān)聯(lián)數(shù)組,下標(biāo)是字符串,這些數(shù)組是關(guān)聯(lián)數(shù)組。043.2使用array()語(yǔ)言結(jié)構(gòu)新建數(shù)組格式:array([key=>]value,...)//key可以是integer或者string//value可以是任何值key可以是integer或者string。如果鍵名是一個(gè)integer的標(biāo)準(zhǔn)表達(dá)方法,則被解釋為整數(shù)(例如“8”將被解釋為8,而“08”將被解釋為“0”)。key中的浮點(diǎn)數(shù)被取整為integer。如果對(duì)給出的值沒(méi)有指定鍵名,則取當(dāng)前最大的整數(shù)索引值,而新的鍵名將是該值加一。如果指定的鍵名已經(jīng)有了值,則該值會(huì)被覆蓋。3.2使用array()語(yǔ)言結(jié)構(gòu)新建數(shù)組實(shí)例3:使用array()創(chuàng)建數(shù)組實(shí)例代碼如下:$a=array(1,2,3,4,5,6);$b=array("one","two","three");$c=array(0=>"aaa",1=>"bbb",2=>"ccc");$d=array("aaa",6=>"bbb","ccc");$e=array("name"=>"zhang","age"=>20);echo$a[5].'<BR/>';echo$b[0].'<BR/>';echo$c[1].'<BR/>';<?php3.2使用array()語(yǔ)言結(jié)構(gòu)新建數(shù)組實(shí)例3:使用array()創(chuàng)建數(shù)組echo$d[0].'<BR/>';print_r($e);輸出結(jié)果:6onebbbaaa20Array([name]=>zhang[age]=>20)echo$e['age'].'<BR/>';3.3多維數(shù)組的聲明多維數(shù)組的聲明方式及規(guī)則,與一維數(shù)組相同。03實(shí)例4二維數(shù)組的聲明實(shí)例4二維數(shù)組的聲明實(shí)例代碼如下:01<?php02$a[0]=0;03$a[0]=1;04$a['string'][0]='Zero';05$a['string'][1]='One';06print_r($a);07?>08輸出結(jié)果:09實(shí)例4二維數(shù)組的聲明Array([0]=>1[string]=>Array([0]=>Zero[1]=>One))如果以array語(yǔ)法聲明,則如下程序片段:04實(shí)例4-2array語(yǔ)法聲明二維數(shù)組實(shí)例4-2array語(yǔ)法聲明二維數(shù)組01實(shí)例代碼如下:02<?php03$a=array(040=>array(0,1),05'string'=>array('Zero','One'),06);07print_r($a);08?>輸出結(jié)果Array([0]=>Array([0]=>0[1]=>1)[string]=>Array([0]=>Zero[1]=>One))謝謝4.1數(shù)組的概述分類及聲明陳學(xué)平1數(shù)組的概述012數(shù)組的分類023數(shù)組的聲明03目錄011數(shù)組的概述1數(shù)組的概述PHP中的數(shù)組實(shí)際上是一個(gè)有序圖。圖是一種把values映射到keys的類型。此類型在很多方面做了優(yōu)化,因此可以把它當(dāng)成真正的數(shù)組來(lái)使用,或列表(矢量),散列表(是圖的一種實(shí)現(xiàn)),字典,集合,棧,隊(duì)列以及更多可能性。因?yàn)榭梢杂昧硪粋€(gè)PHP數(shù)組作為值,也可以很容易地模擬樹(shù)。所謂的數(shù)組下標(biāo)可以視為資料內(nèi)容在此數(shù)組中的識(shí)別名稱,通常被稱為數(shù)組下標(biāo)。當(dāng)索引值為數(shù)值時(shí),也代表此資料內(nèi)容在數(shù)組中的儲(chǔ)存位置。數(shù)組中有幾個(gè)層次就被稱為幾維數(shù)組。1數(shù)組的分類4.2數(shù)組分類:在PHP中有兩種數(shù)組:索引數(shù)組和關(guān)聯(lián)數(shù)組。索引(indexed)數(shù)組的索引值是整數(shù),以0開(kāi)始。當(dāng)通過(guò)位置來(lái)標(biāo)識(shí)東西時(shí)用索引數(shù)組。關(guān)聯(lián)(associative)數(shù)組以字符串做為索引值,關(guān)聯(lián)數(shù)組更像操作表。索引值為列名,用于訪問(wèn)列的數(shù)據(jù)。02數(shù)組的聲明3.1直接賦值的方式聲明數(shù)組數(shù)組常用的賦值方式由于PHP是屬于弱類型數(shù)據(jù),因此源代碼中的數(shù)組并不需要經(jīng)過(guò)特別的聲明操作,直接將一組數(shù)值指定給某一數(shù)組元素即可。一般情況下數(shù)組的賦值有兩種方式:直接賦值方式如:$a[0]='spam@126.com';$a[1]='abuse@';使用array函數(shù)如:$a=array('spam@126.com','abuse@');直接賦值格式:$數(shù)組變量名[索引值]=資料內(nèi)容3.1直接賦值的方式聲明數(shù)組數(shù)組常用的賦值方式其中索引值(下標(biāo))可以是一個(gè)字符串或一個(gè)整數(shù)。等價(jià)于整數(shù)(不以0開(kāi)頭)的字符串值被當(dāng)作整數(shù)對(duì)待。因此,數(shù)組$array[3]與$array[‘3’]是引用相同的元素。但是$array[‘03’]引用的另外不同的元素。3.1直接賦值的方式聲明數(shù)組最常用數(shù)組數(shù)組中索引值(下標(biāo))只有一個(gè)的數(shù)組稱為一維數(shù)組。在數(shù)組中這是最簡(jiǎn)單的,也是最常用的了。03數(shù)組聲明實(shí)例實(shí)例1:一維索引數(shù)組實(shí)例代碼如下:$a[0]=1;$a[1]=2;$a[2]=3;$b[]=1;$b[]=2;$b[]=3;$b[6]=4;$b[]=5;<?php實(shí)例1:一維索引數(shù)組echo$a[2].'<BR/>';01?>02輸出03304505上面實(shí)例數(shù)組的下標(biāo)是數(shù)字,這種數(shù)組是索引數(shù)組。06實(shí)例2:關(guān)聯(lián)數(shù)組07實(shí)例代碼如下:08<?php09echo$b[7];10實(shí)例1:一維索引數(shù)組$a["name"]="zhang";01$a["age"]=23;02$b["name"]="lisi";03$b[]="woman";04$b["age"]=28;05$b[8]=4;06$b[]=5;07echo$a['sex'].'<BR/>';08echo$b[9];?>09$a["sex"]="man";10實(shí)例1:一維索引數(shù)組5上面實(shí)例是一維關(guān)聯(lián)數(shù)組,下標(biāo)是字符串,這些數(shù)組是關(guān)聯(lián)數(shù)組。man輸出結(jié)果:謝謝4.4數(shù)組的遍歷陳學(xué)平01FOR循環(huán)數(shù)組的遍歷4.1使用for循環(huán)遍歷數(shù)組conut($arr);用于統(tǒng)計(jì)數(shù)組元素的個(gè)數(shù)。for循環(huán)只能用于遍歷,純索引數(shù)組。如果存在關(guān)聯(lián)數(shù)組,count統(tǒng)計(jì)時(shí)會(huì)統(tǒng)計(jì)兩種數(shù)組的總個(gè)數(shù),使用for循環(huán)遍歷混合數(shù)組,導(dǎo)致數(shù)組越界!!實(shí)例5for循環(huán)遍歷索引數(shù)組4.1使用for循環(huán)遍歷數(shù)組<?php
$arr=array(1,2,3,5,6,7);
$num=count($arr);
//count最好放到for外面,可以讓函數(shù)只執(zhí)行一次
echo"數(shù)組元素的個(gè)數(shù){$num}<br/>";
for($i=0;$i<$num;$i++){
echo"{$i}==>{$arr[$i]}<br/>";
}
?>024.2forEach循環(huán)遍歷數(shù)組4.2forEach循環(huán)遍歷數(shù)組foreach循環(huán)結(jié)構(gòu):foreach僅用于數(shù)組,有兩種語(yǔ)法。foreach($arras$value){}foreach($arras$key=>$value){}第一種格式遍歷給定的array_expression數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給$value并且數(shù)組內(nèi)部的指針向前移一步4.2forEach循環(huán)遍歷數(shù)組第二種格式做同樣的事,只除了當(dāng)前單元的鍵值也會(huì)在每次循環(huán)中被賦給變量$key。注:當(dāng)foreach開(kāi)始執(zhí)行時(shí),數(shù)組內(nèi)部的指針會(huì)自動(dòng)指向第一個(gè)單元。此外注意foreach所操作的是指定數(shù)組的一個(gè)拷貝,而不是該數(shù)組本身。實(shí)例6foreach循環(huán)遍歷數(shù)組實(shí)例代碼如下:<?php$a=array(10,20,30,40,50,60);foreach($aas$k=>$v){echo"$k=>$v<br>";}?>4.2forEach循環(huán)遍歷數(shù)組謝謝PHPlist()、each()和while循環(huán)遍歷數(shù)組和指針控制數(shù)組陳學(xué)平01聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組024.4使用數(shù)組的內(nèi)部指針控制函數(shù)遍歷數(shù)組目錄4.4.3聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組arrayeach(arrayarray)返回array數(shù)組中當(dāng)前指針位置的鍵/值對(duì)并向前移動(dòng)數(shù)組指針。鍵值對(duì)被返回為四個(gè)單元的數(shù)組,鍵名為0,1,key和value。單元0和key包含有數(shù)組單元的鍵名,1和value包含有數(shù)據(jù)。如果內(nèi)部指針越過(guò)了數(shù)組的末端,則each()返回FALSE。each()經(jīng)常和list()結(jié)合使用來(lái)遍歷數(shù)組。voidlist(mixed...)它不是真正的函數(shù),而是語(yǔ)言結(jié)構(gòu)。list()用一步操作給一組變量進(jìn)行賦值。注:list()僅能用于數(shù)字索引的數(shù)組并假定數(shù)字索引從0開(kāi)始。4.4.3聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組在執(zhí)行each()之后,數(shù)組指針將停留在數(shù)組中的下一個(gè)單元或者當(dāng)碰到數(shù)組結(jié)尾時(shí)停留在最后一個(gè)單元。如果要再用each遍歷數(shù)組,必須使用reset()。實(shí)例8使用list()、each()和while循環(huán)遍歷數(shù)組實(shí)例代碼如下:<?php$fruit=array('a'=>'apple','b'=>'banana','c'=>'cranberry');reset($fruit);while(list($key,$val)=each($fruit)){echo"$key=>$val\n";}$arr=array("one"=>"aaa","two"=>"bbb","three"=>"cccc");while($sz=each($arr)){//echo$sz[0]."===>".$sz[1]."<br>";echo$sz["key"]."===>".$sz["value"]."<br>";}?>輸出結(jié)果a=>appleb=>bananac=>cranberryone===>aaatwo===>bbbthree===>cccc030102數(shù)組指針的控制函數(shù)由于數(shù)組是由多筆資料集合而成,所以當(dāng)程序需要運(yùn)算處理其中某個(gè)索引位置的資料內(nèi)容時(shí),會(huì)由數(shù)組之中內(nèi)定的指針,指向目標(biāo)資料,以提供程序作正確的讀取。下面針對(duì)數(shù)組指針控制的相關(guān)函數(shù),作簡(jiǎn)單的說(shuō)明介紹:next()、prev()、end()及reset()這四個(gè)函數(shù)可以控制目前數(shù)組中的指針位置。next()負(fù)責(zé)將指針向后移動(dòng)prev()負(fù)責(zé)將指針向前移動(dòng)end()會(huì)將指針指向數(shù)組中最后一個(gè)元素reset()函數(shù)則會(huì)將目前指針無(wú)條件移至第一個(gè)索引位置。語(yǔ)法格式:數(shù)組指針的控制函數(shù)mixednext(數(shù)組名稱);mixedprev(數(shù)組名稱);mixedend(數(shù)組名稱);mixedreset(數(shù)組名稱);mixedcurrent(數(shù)組名稱);mixedkey(數(shù)組名稱);1.key($array)得到當(dāng)前指針?biāo)诘奈恢玫逆I名,如果不存在返回null,current($array)得到當(dāng)前指針?biāo)谖恢玫逆I值,如果不存在返回false實(shí)例9使用key($array)得到當(dāng)前指針的鍵名和鍵值實(shí)例代碼如下:<?php數(shù)組指針的控制函數(shù)$users=array('name'=>'lisi','age'=>22,'class'=>'三年二班','score'=>127);echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';/**/?>2.next($array):將數(shù)組指針向下移動(dòng)一位,并且返回當(dāng)前指針?biāo)谖恢玫逆I值,如果沒(méi)有,返回false當(dāng)前指針位置的鍵名:name當(dāng)前指針位置的鍵值:lisi2.next($array):將數(shù)組指針向下移動(dòng)一位,并且返回當(dāng)前指針?biāo)谖恢玫逆I值,如果沒(méi)有,返回false實(shí)例10使用next($array)將數(shù)組指針向下移動(dòng)一位實(shí)例代碼如下:<?php$users=array('name'=>'lisi','age'=>22,'class'=>'三年二班','score'=>127);echonext($users),'<br/>';輸出結(jié)果echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';1echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';2echonext($users),'<br/>';3echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';4echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';5echonext($users),'<br/>';6echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';7輸出結(jié)果echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';var_dump(next($users));echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';?>輸出結(jié)果:22當(dāng)前指針位置的鍵名:age輸出結(jié)果三年二班貳當(dāng)前指針位置的鍵值:22壹當(dāng)前指針位置的鍵值:三年二班肆當(dāng)前指針位置的鍵名:class叁3.prev($array):將數(shù)組指針向上移動(dòng)一位,并且返回當(dāng)前指針?biāo)谖恢玫逆I值當(dāng)前指針位置的鍵名:score當(dāng)前指針位置的鍵值:127bool(false)當(dāng)前指針位置的鍵名:當(dāng)前指針位置的鍵值:3.prev($array):將數(shù)組指針向上移動(dòng)一位,并且返回當(dāng)前指針?biāo)谖恢玫逆I值,如果沒(méi)有,返回false實(shí)例11使用prev($array)將數(shù)組指針向上移動(dòng)一位實(shí)例代碼如下:<?php3.prev($array):將數(shù)組指針向上移動(dòng)一位,并且返回當(dāng)前指針?biāo)谖恢玫逆I值$users=array('name'=>'lisi','age'=>22,'class'=>'三年二班','score'=>127);echoend($users),'<br/>';echoprev($users),'<br/>';echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';echoprev($users),'<br/>';echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';3.prev($array):將數(shù)組指針向上移動(dòng)一位,并且返回當(dāng)前指針?biāo)谖恢玫逆I值echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';01echoprev($users),'<br/>';02echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';03echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';04echoprev($users),'<br/>';05echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';06echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';?>07輸出結(jié)果4.reset($array):將數(shù)組指針移動(dòng)到數(shù)組開(kāi)始,并且返回當(dāng)前指針位置所在位置的鍵值,若果沒(méi)有,返回false4.reset($array):將數(shù)組指針移動(dòng)到數(shù)組開(kāi)始,并且返回當(dāng)前指針位置所在位置的鍵值,若果沒(méi)有,返回false實(shí)例12使用reset($array)將數(shù)組指針移動(dòng)到數(shù)組開(kāi)始位置實(shí)例代碼如下:<?php$users=array('name'=>'lisi','age'=>22,'class'=>'三年二班','score'=>127);echoreset($users),'<br/>';echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';4.reset($array):將數(shù)組指針移動(dòng)到數(shù)組開(kāi)始,并且返回當(dāng)前指針位置所在位置的鍵值,若果沒(méi)有,返回falseecho'當(dāng)前指針位置的鍵值:',current($users),'<br/>';?>輸出結(jié)果lisi當(dāng)前指針位置的鍵名:name當(dāng)前指針位置的鍵值:lisi5.end($array):將數(shù)組指針移動(dòng)到數(shù)組末尾,并且返回當(dāng)前指針位置所在位實(shí)例13使用end($array)將數(shù)組指針移動(dòng)到數(shù)組末尾實(shí)例代碼如下:<?php$users=array('name'=>'lisi','age'=>22,'class'=>'三年二班','score'=>127);echoend($users),'<br/>';echo'當(dāng)前指針位置的鍵名:',key($users),'<br/>';echo'當(dāng)前指針位置的鍵值:',current($users),'<br/>';?>輸出結(jié)果輸出結(jié)果127當(dāng)前指針位置的鍵名:score當(dāng)前指針位置的鍵值:127謝謝4.5數(shù)組統(tǒng)計(jì)函數(shù)陳學(xué)平2024-10-185數(shù)組統(tǒng)計(jì)函數(shù)01統(tǒng)計(jì)數(shù)組元素的個(gè)數(shù)和唯一性02max()函數(shù)04min()函數(shù)05array_sum的用法03目錄5數(shù)組統(tǒng)計(jì)函數(shù)在右側(cè)編輯區(qū)輸入內(nèi)容4.array_sum()函數(shù):將數(shù)組中所有值的和以整數(shù)或浮點(diǎn)數(shù)的結(jié)果返回;04在右側(cè)編輯區(qū)輸入內(nèi)容3.min()函數(shù):。。。。數(shù)組中元素最小值;03在右側(cè)編輯區(qū)輸入內(nèi)容2.max()函數(shù):統(tǒng)計(jì)計(jì)算數(shù)組中元素最大值;02在右側(cè)編輯區(qū)輸入內(nèi)容1.count()函數(shù):統(tǒng)計(jì)數(shù)組中元素格式;01下面舉例說(shuō)明5.array_count_values()函數(shù):函數(shù)對(duì)數(shù)組中的所有值進(jìn)行計(jì)數(shù)。05統(tǒng)計(jì)數(shù)組元素的個(gè)數(shù)和唯一性1.count()函數(shù)的作用是計(jì)算數(shù)組中的元素?cái)?shù)目或?qū)ο笾袑傩詡€(gè)數(shù)。對(duì)于數(shù)組,返回其元素的個(gè)數(shù),對(duì)于其他值返回1.intcount(mixedvar[,intmode])第一個(gè)參數(shù)是必須的,傳人個(gè)計(jì)算的數(shù)組或?qū)ο?。第二個(gè)參數(shù)是可選,規(guī)定函數(shù)的模式是否遞歸地計(jì)算多維數(shù)組中數(shù)組的元素個(gè)數(shù),可能的值是0或1,0為默認(rèn)值,不檢測(cè)多維數(shù)組,為1則檢測(cè)多維數(shù)組實(shí)例14使用count()函數(shù)統(tǒng)計(jì)數(shù)組中元素的個(gè)數(shù)實(shí)例代碼如下:<?php$a=array("a","b","c","d");統(tǒng)計(jì)數(shù)組元素的個(gè)數(shù)和唯一性echocount($a);//輸出個(gè)數(shù)4$b=array("a"=>array(1,2,3),"b"=>array(4,5,6));echocount($b,1);//輸出8echocount($b);//輸出2?>2.array_count_values()函數(shù)用于統(tǒng)計(jì)數(shù)組中所有值出現(xiàn)的次數(shù)arrayarray_count_values(arrayinput)參數(shù)規(guī)定輸入一個(gè)數(shù)組,返回一個(gè)數(shù)組,其元素的鍵名是原數(shù)組的值,鍵值是該值在原數(shù)組中出現(xiàn)的次數(shù)實(shí)例15使用array_count_values()函數(shù)統(tǒng)計(jì)數(shù)組中所有值出現(xiàn)的次數(shù)實(shí)例代碼如下:<?php$array=array(1,"a",1,"b","a");$newarray=array_count_values($array);print_r($newarray);//輸出array([1]=>2[a]=>2[b]=>1)?>3.array_sum的用法01array_sum的功能:返回?cái)?shù)組中所有值的和。02實(shí)例16使用array_sum返回整數(shù)和03實(shí)例代碼如下:04<?php05$a=array(1,2);06$b=array_sum($a);07echo$b;//其中$b=308注解:09array_sum()函數(shù)返回?cái)?shù)組中所有值的和。array_sum的用法如果所有值都是整數(shù),則返回一個(gè)整數(shù)值。如果其中有一個(gè)或多個(gè)值是浮點(diǎn)數(shù),則返回浮點(diǎn)數(shù)。實(shí)例17使用array_sum()返回浮點(diǎn)數(shù)和實(shí)例代碼如下:<?php$a=array(1.2,2.0);$b=array_sum($a);echo$b;//其中$b=3.2也就是說(shuō)array_sum(array)參數(shù)必須是數(shù)組形式,如果數(shù)組中有一個(gè)是浮點(diǎn)數(shù),那么就返回浮點(diǎn)數(shù)。array_sum的用法實(shí)例18計(jì)算和實(shí)例代碼如下:<?php$a=array('a'=>2.2,'b'=>2.0);$b=array_sum($a);echo$b;//其中$b=4.2有人提出:請(qǐng)用一行代碼求出1到100的和,那么就可以用該函數(shù)。實(shí)例19使用for循環(huán)計(jì)算1-100的和實(shí)例代碼如下:<?php$sum=0;for($x=1;$x<=100;$x++){
$sum+=$x;}echo"數(shù)字1到100的總和是:$sum";輸出結(jié)果:數(shù)字1到100的總和是:5050max()函數(shù)max()函數(shù)返回一個(gè)數(shù)組中的最大值,或者幾個(gè)指定值中的最大值。實(shí)例20使用max()
函數(shù)返回最大值實(shí)例代碼如下:<!DOCTYPEhtml><html><body><?phpecho(max(2,4,6,8,10)."<br>");echo(max(22,14,68,18,15)."<br>");echo(max(array(4,6,8,10))."<br>");echo(max(array(44,16,81,12)));?></body></html>輸出結(jié)果:10681081min()函數(shù)min()函數(shù)返回一個(gè)數(shù)組中的最小值,或者幾個(gè)指定值中的最小值。實(shí)例21使用min()函數(shù)返回最小值實(shí)例代碼如下:<?phpecho(min(2,4,6,8,10)."<br>");echo(min(22,14,68,18,15)."<br>");echo(min(array(4,6,8,10))."<br>");echo(min(array(44,16,81,12)));?>輸出結(jié)果214412
謝謝4.6數(shù)組和變量之間的轉(zhuǎn)換陳學(xué)平6數(shù)組和變量之間的轉(zhuǎn)換1.extract()函數(shù):使用數(shù)組定義變量可以使用數(shù)組定義一組變量,其中新定義的變量名是數(shù)組的鍵名,變量的值是數(shù)組元素鍵名對(duì)應(yīng)的值。實(shí)例22使用extract()函數(shù)定義變量實(shí)例代碼如下:<?php$arr=array("name"=>"張三","sex"=>"男","age"=>"20");extract($arr);echo$name;6數(shù)組和變量之間的轉(zhuǎn)換echo'<br>';echo$sex;echo'<br>';運(yùn)行結(jié)果就應(yīng)該是:?>張三echo$age;男206數(shù)組和變量之間的轉(zhuǎn)換2.compact()函數(shù)和extract()恰恰相反,compact()函數(shù)可以使用變量建立一個(gè)數(shù)組,每個(gè)數(shù)組元素的變量名作為鍵名,每個(gè)數(shù)組元素變量的值作為變量名對(duì)應(yīng)的變量值。實(shí)例23使用compact()函數(shù)建立數(shù)組實(shí)例代碼如下:<?php$a="php";$b="java";$c="asp";$result=compact("a","b","c");6數(shù)組和變量之間的轉(zhuǎn)換1print_r($result);?>2運(yùn)行結(jié)果就應(yīng)該是:3Array([a]=>php[b]=>java[c]=>asp)謝謝數(shù)組檢索函數(shù)和排序函數(shù)陳學(xué)平7數(shù)組檢索函數(shù)018數(shù)組排序函數(shù)02目錄017數(shù)組檢索函數(shù)7數(shù)組檢索函數(shù)1.array_keys()函數(shù)用于獲取數(shù)組中所有的鍵名,返回值為數(shù)組。實(shí)例24使用array_keys()函數(shù)獲取數(shù)組的鍵名實(shí)例代碼如下:<?php$array=array(0=>100,"php"=>"圖書(shū)");$arr1=array_keys($array);print_r($arr1);//這里應(yīng)該輸出Array([0]=>0,[1]=>php)7數(shù)組檢索函數(shù)$array=array("php","asp","java","php");$arr2=array_keys($array,"php");print_r($arr2);//輸出Array([0]=>0,[1]=>3)?>2.array_values()函數(shù)用于返回?cái)?shù)組中所有的值并給其建立數(shù)字索引。即使原來(lái)有數(shù)字索引也會(huì)被清除,從0重新開(kāi)始實(shí)例25使用array_values()函數(shù)返回值并建立數(shù)字索引實(shí)例代碼如下:7數(shù)組檢索函數(shù)<?php$array=array("手冊(cè)"=>"php手冊(cè)","php應(yīng)用","php"=>"php手冊(cè)","php應(yīng)用","php案例");$result=array_values($array);print_r($result);?>運(yùn)行結(jié)果應(yīng)該是:Array([0]=>php手冊(cè)[1]=>php應(yīng)用[2]=>PHP手冊(cè)[3]=>php應(yīng)用[4]=>php案例)7數(shù)組檢索函數(shù)3.in_array()函數(shù)在數(shù)組中檢測(cè)某個(gè)值是否存在,找到存在則返回true,否則false。實(shí)例26使用in_array()函數(shù)檢測(cè)某一個(gè)值是否存在實(shí)例代碼如下:<?php$array=array("Php","asP","jAva","html");if(in_array("php",$array)){echo"phpinarray";//檢索字符串時(shí)會(huì)區(qū)分大小寫(xiě)}7數(shù)組檢索函數(shù)if(in_array("Java",$array)){echo"JAvainarray";}echo‘<br>’;$arr=array("100",200,300);if(in_array("200",$arr,TRUE)){//TRUE會(huì)要求數(shù)組值的類型也相同,區(qū)分字符類型echo"200inarr";}if(in_array(300,$arr,TRUE)){7數(shù)組檢索函數(shù)echo"300inarray";}?>運(yùn)行結(jié)果應(yīng)該是:300inarray4.array_search()函數(shù)用于在數(shù)組中具體搜索某個(gè)給定的值,若找到則返回鍵名,否則返回false。實(shí)例27使用array_search()函數(shù)搜索某一個(gè)值實(shí)例代碼如下:<?php$arr=array("php","asp","60");7數(shù)組檢索函數(shù)if(array_search(60,$arr)){echo"數(shù)組中有60"<br>;}else{echo"數(shù)組中沒(méi)有60<br>";}if(array_search(60,$arr,true)){//加上true選項(xiàng),區(qū)分?jǐn)?shù)據(jù)類型。echo"數(shù)組中有60<br>";}else{echo"數(shù)組中無(wú)60<br>";}?>7數(shù)組檢索函數(shù)運(yùn)行結(jié)果應(yīng)該是:數(shù)組中有60數(shù)組中無(wú)605.array_key_exists()函數(shù)檢查數(shù)組中是否存在給定的某鍵名/索引,若存在,則返回true實(shí)例28使用array_key_exists()函數(shù)檢查給定的鍵名、索引實(shí)例代碼如下:<?php$array=array("php"=>58,"ajax"=>54);7數(shù)組檢索函數(shù)if(array_key_exists("php",$array)){echo"php這個(gè)鍵名存在于數(shù)組中";}?>運(yùn)行結(jié)果php這個(gè)鍵名存在于數(shù)組中6.array_unique()函數(shù)刪除數(shù)組中的重復(fù)元素,該函數(shù)會(huì)先將數(shù)組中的所有值作為字符串排序,然后每個(gè)值只保留一個(gè)。實(shí)例29使用array_unique()函數(shù)刪除重復(fù)元素實(shí)例代碼如下:<?php$arr_int=array("PHP","JAVA","ASP","PHP","ASP");$result=array_unique($arr_int);運(yùn)行結(jié)果print_r($result);?>運(yùn)行結(jié)果應(yīng)該是:Array([0]=>"PHP"[1]=>"JAVA"[2]=>"ASP");010203028數(shù)組排序函數(shù)sort()函數(shù)將數(shù)組元素值以升序排序,并為排序后的數(shù)組賦予新的整數(shù)鍵名索引。實(shí)例30使用sort()函數(shù)將數(shù)組元素升序排列并變?yōu)樾聰?shù)組實(shí)例代碼如下:<?php$array=array("a"=>"asp","p"=>"php","j"=>"jsp");sort($array);print_r($array);//輸出的數(shù)組還是$array,也就是說(shuō)sort()將數(shù)組array處理替換成了新的數(shù)組。?>運(yùn)行結(jié)果就應(yīng)該是:Array([0]=>"asp"[1]=>"jsp"[2]=>"php")2.asort()函數(shù)2.asort()函數(shù)與sort()函數(shù)相類似,區(qū)別在于排序后會(huì)保持?jǐn)?shù)組元素原有的鍵值對(duì)的對(duì)應(yīng)關(guān)系。實(shí)例31使用asort()函數(shù)排序并保持原有的鍵值對(duì)對(duì)應(yīng)實(shí)例代碼如下:<?php$array=array("a"=>"asp","p"=>"php","j"=>"jsp");asort($array);print_r($array);?>運(yùn)行結(jié)果如下:Array([a]=>"asp"[j]=>"jsp"[p]=>"php")3.rsort()和arsort()函數(shù)
4.ksort()和krsort()函數(shù)3.rsort()和arsort()函數(shù)rsort()函數(shù)與sort()函數(shù)的語(yǔ)法格式相同,arsort()函數(shù)與asort()函數(shù)的語(yǔ)法格式相同;區(qū)別之處在于rsort()和arsort()函數(shù)是按照降序排列的。4.ksort()和krsort()函數(shù)根據(jù)數(shù)組元素的鍵名按照升序/降序排序,排序后保持?jǐn)?shù)組元素原有的“鍵值對(duì)對(duì)應(yīng)關(guān)系”實(shí)例32使用ksort()和krsort()函數(shù)進(jìn)行升序/降序排序?qū)嵗a如下:<?php$array1=array("a"=>"asp","p"=>"php","j"=>"jsp");ksort($array1);print_r($array1);echo'<br>';$array2=array("a"=>"asp","p"=>"php","j"=>"jsp");krsort($array2);print_r($array2);?>運(yùn)行結(jié)果就應(yīng)該是:5.natsort()和natcasesort()函數(shù)Array([a]=>"asp"[j]=>"jsp"[p]=>"php")Array([p]=>"php"[j]=>"jsp"[a]=>"asp")5.natsort()和natcasesort()函數(shù)以自然排序算法對(duì)數(shù)組元素的值進(jìn)行升序/降序排序。排序后保持?jǐn)?shù)組元素原有的“鍵值對(duì)”對(duì)應(yīng)關(guān)系。實(shí)例33使用natsort()和natcasesort()函數(shù)自然排序法排序?qū)嵗a如下:<?php$array1=array("index1","Index11","index2");natsort($array1);print_r($array1);echo'<br>';$array2=array("index1","Index11","index2");natcasesort($array2);print_r($array2);?>運(yùn)行結(jié)果應(yīng)該是這樣的:Array([1]=>Index11[0]=>index1[2]=>index2)//“鍵值對(duì)對(duì)應(yīng)關(guān)系不變”升序Array([0]=>index1[2]=>index2[1]=>Index11)//“鍵值對(duì)對(duì)應(yīng)關(guān)系不變”降序6.shuffle()函數(shù)6.shuffle()函數(shù)對(duì)數(shù)組中的元素進(jìn)行隨機(jī)排序,隨機(jī)排序后的數(shù)組將會(huì)被賦予新的“整數(shù)鍵名”。實(shí)例34使用shuffle()函數(shù)進(jìn)行隨機(jī)排序?qū)嵗a如下:<?php$array=array("a"=>"asp","p"=>"php","j"=>"jsp");shuffle($array);print_r($array);?>運(yùn)行結(jié)果是什么?是隨機(jī)的排序7.array_reverse()函數(shù)7.array_reverse()函數(shù)返回一個(gè)和數(shù)組元素順序相反的新數(shù)組。實(shí)例35使用array_reverse()函數(shù)返回新數(shù)組實(shí)例代碼如下:<?php$arr=array("asp","php","jsp");$result=array_reverse($arr);//不保留原有的“鍵值對(duì)”對(duì)應(yīng)關(guān)系print_r($result);echo'<br>';$result2=array_reverse($arr,true);//true選項(xiàng),保留原有的“鍵值對(duì)”對(duì)應(yīng)關(guān)系。print_r($result2);?>運(yùn)行結(jié)果:Array([0]=>jsp[1]=>php[2]=>asp)Array([2]=>asp[1]=>php[0]=>jsp)7.array_reverse()函數(shù)謝謝4.9數(shù)組與數(shù)據(jù)結(jié)構(gòu)演講人9數(shù)組與數(shù)據(jù)結(jié)構(gòu)0110數(shù)組集合類函數(shù)02目錄019數(shù)組與數(shù)據(jù)結(jié)構(gòu)9數(shù)組與數(shù)據(jù)結(jié)構(gòu)1.array_push()函數(shù)用于向數(shù)組末尾添加一個(gè)或多個(gè)元素,并返回新數(shù)組元素的個(gè)數(shù)。實(shí)例36使用array_push()函數(shù)向數(shù)組末尾添加元素實(shí)例代碼如下:<?php$array=array(0=>"php",1=>"java");array_push($array,'VB','VC');print_r($array);?>運(yùn)行結(jié)果是:Array([0]=>php[1]=>java[2]=>VB[3]=>VC)9數(shù)組與數(shù)據(jù)結(jié)構(gòu)2.array_pop()函數(shù)用于彈出數(shù)組中最后一個(gè)元素,并返回該元素值。同時(shí)將數(shù)組的長(zhǎng)度-1。如果數(shù)組為空(或者不是數(shù)組),將返回null。實(shí)例37使用array_pop()函數(shù)彈出數(shù)組最后一個(gè)元素實(shí)例代碼如下:<?php$arr=array("asp","javasript","jsp","php");$array=array_pop($arr);echo"被彈出的單元是:$array<br>";運(yùn)行結(jié)果將會(huì)是:被彈出的元素是:phpArray([0]=>asp,[1]=>javascript,[2]=>jsp)9數(shù)組與數(shù)據(jù)結(jié)構(gòu)3.array_shift()函數(shù)刪除數(shù)組第一個(gè)元素,并返回該元素值。數(shù)組為空或非數(shù)組則返回null。實(shí)例38使用array_shift()函數(shù)刪除數(shù)組第一個(gè)元素實(shí)例代碼如下:<?php$array1=array("asp"=>"實(shí)例應(yīng)用","php"=>"函數(shù)手冊(cè)","java"=>"基礎(chǔ)應(yīng)用");$array2=array("asp"=>"實(shí)例應(yīng)用","函數(shù)大全","基礎(chǔ)應(yīng)用");$result=array_diff($array1,$array2);//其實(shí)括號(hào)中的參數(shù)可以是好多個(gè),但是最少要兩個(gè)。print_r($result);?>運(yùn)行結(jié)果應(yīng)該是:php手冊(cè)Array([0]=>php案例[1]=>php應(yīng)用)php手冊(cè)4.array_unshift()函數(shù)用于在數(shù)組開(kāi)頭插入一個(gè)或多個(gè)元素,并返回插入元素的個(gè)數(shù)。實(shí)例39使用array_unshift()函數(shù)在數(shù)組開(kāi)始插入元素實(shí)例代碼如下:<?php$array=array(0=>"php",1=>"java");array_unshift($array,'VB','VC');print_r($array);?>運(yùn)行結(jié)果是:Array([0]=>VB[1]=>VC[2]=php[3]=>java)0210數(shù)組集合類函數(shù)10數(shù)組集合類函數(shù)1.array_merge()函數(shù)可以把兩個(gè)或多個(gè)數(shù)組合并成一個(gè)數(shù)組。在合并數(shù)組時(shí),如果輸入的數(shù)組中有相同的字符串鍵名,則后面的值將覆蓋前面的值;如果數(shù)組包含數(shù)字鍵名,后面的值不會(huì)覆蓋原來(lái)的值,而是附加到后面。實(shí)例40使用array_merge()函數(shù)合并數(shù)組實(shí)例代碼如下:<?php$str1=array("圖書(shū)"=>"白鹿原",10);$str2=array("圖書(shū)"=>"茶花女","PHP"=>"95元",10);10數(shù)組集合類函數(shù)$result=array_merge($str1,$str2);01print_r($result);?>02運(yùn)行結(jié)果應(yīng)該為:03Array([圖書(shū)]=>茶花女[0]=>10[PHP]=>95元,[1]=10)04說(shuō)明一下05//有相同的字符串鍵名,則后面的值將覆蓋前面的值06//數(shù)組包含數(shù)字鍵名,后面的值不會(huì)覆蓋原來(lái)的值,而是附加到后面0710數(shù)組集合類函數(shù)2.array_diff()函數(shù)用來(lái)計(jì)算數(shù)組的差集,結(jié)果返回一個(gè)數(shù)組。該數(shù)組包括所有在被比較的數(shù)組中但是不在任何其他參數(shù)數(shù)組中的值,鍵名保留不變。實(shí)例41使用array_diff()函數(shù)計(jì)算數(shù)組的差集實(shí)例代碼如下:<?php$array1=array("asp"=>"實(shí)例應(yīng)用","php"=>"函數(shù)手冊(cè)","java"=>"基礎(chǔ)應(yīng)用");$array2=array("asp"=>"實(shí)例應(yīng)用","函數(shù)大全","基礎(chǔ)應(yīng)用");10數(shù)組集合類函數(shù)$result=array_diff($array1,$array2);//其實(shí)括號(hào)中的參數(shù)可以是好多個(gè),但是最少要兩個(gè)。print_r($result);?>運(yùn)行結(jié)果是:Array([php]=>"函數(shù)手冊(cè)");說(shuō)明一下就是第一個(gè)數(shù)組是被比較數(shù)組,后面其他的數(shù)組都是比較數(shù)組。被比較數(shù)組有,而比較數(shù)組沒(méi)有的。把數(shù)組中的這個(gè)元素的鍵名和值產(chǎn)生一個(gè)新的數(shù)組。10數(shù)組集合類函數(shù)3.array_diff_assoc()函數(shù)帶索引檢查計(jì)算數(shù)組的差集,結(jié)果返回一個(gè)數(shù)組。該數(shù)組包括所有在被比較的數(shù)組中但是不在任何其他參數(shù)數(shù)組中的值,鍵名也用于比較。實(shí)例42使用array_diff_assoc()函數(shù)檢查計(jì)算數(shù)組的差集實(shí)例代碼如下:<?php$str1=array("asp"=>"實(shí)例應(yīng)用","php"=>"函數(shù)手冊(cè)","java"=>"基礎(chǔ)應(yīng)用");$str2=array("asp"=>"實(shí)例應(yīng)用","函數(shù)大全","基礎(chǔ)應(yīng)用");10數(shù)組集合類函數(shù)1Array([php]=>函數(shù)手冊(cè)[java]=>基礎(chǔ)應(yīng)用)32
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 特色單車課程設(shè)計(jì)
- 早教保齡球課程設(shè)計(jì)
- 物流網(wǎng)上課程設(shè)計(jì)
- 最簡(jiǎn)單的數(shù)電課程設(shè)計(jì)
- 機(jī)械原理課程設(shè)計(jì)汽車
- 數(shù)控課程設(shè)計(jì)
- 水閘課程設(shè)計(jì)版式
- 2024年上海市建筑安全員考試題庫(kù)及答案
- 淘寶代課程設(shè)計(jì)
- 電影網(wǎng)站課程設(shè)計(jì)
- 校招面試官培訓(xùn)課件
- 資產(chǎn)管理基礎(chǔ)知識(shí)
- 醫(yī)院采購(gòu)遴選方案
- GB/T 7260.1-2023不間斷電源系統(tǒng)(UPS)第1部分:安全要求
- 對(duì)外開(kāi)放與國(guó)際合作概述
- 2024屆四川省成都市高中數(shù)學(xué)高一下期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 2023年青協(xié)活動(dòng)總結(jié)報(bào)告
- 提升供應(yīng)鏈效率:年度運(yùn)營(yíng)計(jì)劃
- 展覽館維修維護(hù)投標(biāo)方案
- 陳赫賈玲小品《歡喜密探》臺(tái)詞劇本
- 2023招聘專員個(gè)人年終總結(jié)
評(píng)論
0/150
提交評(píng)論