這篇文章主要講解了“php中數(shù)組下標(biāo)一定要連續(xù)嗎”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“php中數(shù)組下標(biāo)一定要連續(xù)嗎”吧!
成都創(chuàng)新互聯(lián)公司專注于城陽(yáng)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開(kāi)發(fā)。城陽(yáng)網(wǎng)站建設(shè)公司,為城陽(yáng)等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì)網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
php數(shù)組下標(biāo)可以不是連續(xù)的。在php中,數(shù)組的下標(biāo)可以整數(shù),也可以是字符串;數(shù)組的元素順序不是由下標(biāo)決定,而是由其“加入”的順序決定。PHP數(shù)組的下標(biāo)可任意設(shè)定,無(wú)需順序,也無(wú)需連續(xù),例“array(2=>1,4=>1.1,3=>5,7=>'abc',0=>true); ”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
數(shù)組基礎(chǔ):
php中,數(shù)組的下標(biāo)可以整數(shù),也可以是字符串
php中,數(shù)組的元素順序不是由下標(biāo)決定,而是由其“加入”的順序決定
定義:
$arr = array(元素1,元素2,...);
示例1:
$arr1 = array(1,1.1,5,'abc',true,false); //可以存儲(chǔ)任何數(shù)據(jù),此時(shí)為默認(rèn)下標(biāo)
$arr2 = array(2=>1,4=>1.1,3=>5,7=>'abc',0=>true); //下標(biāo)可任意設(shè)定(無(wú)需順序,無(wú)需連續(xù))
$arr3 = array(2=>1,1.1,1=>5,'abc',0=>true); //可以加下標(biāo),也可以不加,不加下標(biāo)則為默認(rèn)下標(biāo)
//默認(rèn)下標(biāo)規(guī)則:前面已經(jīng)用過(guò)的最大數(shù)字下標(biāo)+1
//這個(gè)數(shù)字的下標(biāo)分別是:2,3,1,4,0
示例2:
$arr1 = array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true); //混合下標(biāo),同樣遵循默認(rèn)下標(biāo)規(guī)則
$arr2 = array(-2=>1,'dd'=>5,1.1,'abc',true); //負(fù)數(shù)下標(biāo)不算在整數(shù)下標(biāo)中,而只當(dāng)作字符下標(biāo)
//則這個(gè)數(shù)組最后三項(xiàng)的下標(biāo)為:0,1,2
示例3:
$arr1 = array(2.7=>1,'dd'=>5,1=>1.1,'abc',true); //浮點(diǎn)數(shù)下標(biāo)會(huì)自動(dòng)轉(zhuǎn)換為整數(shù),且直接去掉小數(shù)部分
$arr2 = array("2.7"=>1,'dd'=>5,"11"=>1.1,'abc',true); //純數(shù)字字符串下標(biāo),當(dāng)作數(shù)字看待
$arr3 = array(2=>1,'dd'=>5,true=>1.1,'abc',false=>true); //布爾值當(dāng)作下標(biāo),則true為1,false為0
$arr4 = array(2=>1,'dd'=>5,2=>1.1,'abc',true); //如果下標(biāo)跟前面的重復(fù),則單純覆蓋前面同名下標(biāo)的值
定義數(shù)組的其他形式:
$arr1[] = 1;
$arr1[] = 5;
$arr1[] = 1.1;
...... //直接在變量后面使用[],就成為數(shù)組,并依次賦值
$arr2['aa'] = 1;
$arr2['bb'] = 5;
$arr2[5] = 1.1;
...... //這種形式寫(xiě)的下標(biāo),其實(shí)跟使用array語(yǔ)法結(jié)構(gòu)幾乎一樣
數(shù)組的分類:
從鍵值關(guān)系分為:
關(guān)聯(lián)數(shù)組:通常是指下標(biāo)為字符串,并且該字符串大體可以表達(dá)出數(shù)據(jù)的含義的數(shù)組
例:
$person = array("name" => "poe", "age" => 18, "edu" => "大學(xué)畢業(yè)");
索引數(shù)組:通常是指一個(gè)數(shù)組的下標(biāo)嚴(yán)格的從0開(kāi)始的連續(xù)的數(shù)字下標(biāo) -- 跟js數(shù)組類似
從數(shù)組層次為分:
一維數(shù)組:就是一個(gè)數(shù)組中的每一個(gè)元素值,都是一個(gè)普通值(非數(shù)組值)
例:
$person = array("name" => "poe", "age" => 18, "edu" => "大學(xué)畢業(yè)");
二維數(shù)組:一個(gè)數(shù)組中的每一項(xiàng),又是一個(gè)一維數(shù)組。
$person = array(
"name" => array("xiaohua","xiaofang),
"age" => array(18,22),
"edu" => array("大學(xué)畢業(yè)","小學(xué)",)
);
多維數(shù)組:依次類推。。。
多維數(shù)組的一般語(yǔ)法形式:
$v1 = 數(shù)組名[下標(biāo)][下標(biāo)][......]
數(shù)組的遍歷:
遍歷基本語(yǔ)法:
數(shù)組指針和遍歷原理:foreach($arr as [$key =>] $value) {
//這里就可以對(duì)$key and $value進(jìn)行所有可能的操作 -- 因?yàn)樗麄兙褪且粋€(gè)變量
//$key代表每次取得元素的下標(biāo),可能是數(shù)字,也可以是字符串
//$value代表每次取得元素的值,可能是各種類型
//此循環(huán)結(jié)構(gòu)會(huì)從數(shù)組的第一項(xiàng)一直遍歷到最后一項(xiàng),然后結(jié)束
}
每個(gè)數(shù)組,其內(nèi)部都有一個(gè)“指針”,該指針決定了該數(shù)組當(dāng)前取值的時(shí)候取到的元素
foreach遍歷過(guò)程中,都是依賴于該指針而進(jìn)行的。
舉例:
指針除了負(fù)責(zé)foreach循環(huán)的位置設(shè)定之外,還有其他一些函數(shù)也依賴于指針:$arr1 = array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true);
1:$v1 = current($arr1);
//取得$arr1中當(dāng)前指針指向的元素的值,如果沒(méi)有指向元素,則為false
2:$v1 = key($arr1);
//取得$arr1中當(dāng)前指針指向的元素的下標(biāo)
3:$v1 = next($arr1);
//將指針移向“下一個(gè)元素”,然后取得該下一個(gè)元素的值
4:$v1 = prev($arr1);
//將指針移向“上一個(gè)元素”,然后取得該上一個(gè)元素的值
5:$v1 = reset($arr1);
//將指針移向“第一個(gè)元素”,并取得該元素的值
6:$v1 = end($arr1);
//將指針移向“最后一個(gè)元素”,并取得該元素的值
7:$v1 = each($arr1);
//取得當(dāng)前元素的下標(biāo)和值,然后移動(dòng)指針到下一個(gè)位置
感謝各位的閱讀,以上就是“php中數(shù)組下標(biāo)一定要連續(xù)嗎”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)php中數(shù)組下標(biāo)一定要連續(xù)嗎這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!