數(shù)組在之前我們讓大家記住兩個(gè)觀點(diǎn):
數(shù)組可以存入多個(gè)不同類型的數(shù)據(jù),甚至還可以存數(shù)組,這樣的數(shù)組我們叫多維數(shù)組,是一個(gè)復(fù)合數(shù)據(jù)類型。
數(shù)組的英文是array,學(xué)一了一下最簡(jiǎn)單的數(shù)組聲明。
那我們來(lái)進(jìn)行簡(jiǎn)單的回顧:
<?php $shu = array(1 , 1.5 , true ,'天王蓋地虎,小雞燉蘑菇'); echo '<pre>'; var_dump($shu); echo '</pre>'; ?>
打印結(jié)果:
/* array(4) { [0]=> int(1) [1]=> float(1.5) [2]=> bool(true) [3]=> string(33) "天王蓋地虎,小雞燉蘑菇" } */
在上例中,我們發(fā)現(xiàn)存入了多種類型的數(shù)據(jù):
整型
浮點(diǎn)型
布爾型
字符串
我們仔細(xì)觀察一下上面的結(jié)果,你會(huì)發(fā)現(xiàn)以下幾個(gè)特點(diǎn):
array(size = 4) 說(shuō)明里面有4個(gè)元素
0 => int 1 我們知道int是整型的意思,1是一個(gè)整型的數(shù)值。那前面的0,1,2,3和=>代表什么意思呢?
最新前的0,1,2,3代表的是值的讀取標(biāo)識(shí)號(hào),我們稱之為下標(biāo)或者鍵(英文:key)
=> 是一個(gè)符號(hào)標(biāo)準(zhǔn)叫法叫作:鍵值對(duì)應(yīng)符。因此,以后再看到 0=> int 1 可以這樣來(lái)說(shuō)。 下標(biāo)訪問(wèn)符0對(duì)應(yīng)整型的1。
我們還稱數(shù)組里面的鍵值對(duì)為元素,元素就是鍵值對(duì)的組合。
我們通過(guò)上例,其實(shí)你一不小心的就完成了數(shù)組其中的一種聲明方式:索引數(shù)組的聲明喲。
$class (1,2,'年級(jí)');
所謂索引數(shù)組:就是下標(biāo)全為整型的數(shù)組。
索引數(shù)組的下標(biāo)必須要從0開(kāi)始嗎?
答:索引數(shù)組并不一定要從0開(kāi)始。
那如何能夠不從0開(kāi)始呢?
答:需要用到大家在上面學(xué)的一小塊知識(shí)喲。就是鍵值對(duì)應(yīng)符。我們來(lái)動(dòng)手寫(xiě)寫(xiě):
<?php $kele = array(5=>'我',20=>'PHP中文網(wǎng)'); //打印顯示$kele echo '<pre>'; var_dump($kele); echo '</pre>'; ?>
結(jié)果:
/* array(2) { [5]=> string(3) "我" [20]=> string(12) "PHP中文網(wǎng)" } */
這樣寫(xiě)你再看看結(jié)果是不是下標(biāo)就不再是0了吧。
每次用array()寫(xiě)的太麻煩了,還可以不用寫(xiě)array喲,更簡(jiǎn)單。
實(shí)例:
<?php $minren = [ '楊冪', '王珞丹', 100 => '劉亦菲', '黃圣依', '范冰冰' ]; echo '<pre>'; var_dump($minren); echo '</pre>'; ?>
上面是這兩種寫(xiě)法。當(dāng)然,你自己喜歡使用哪一種就使用哪一種來(lái)聲明。
$minren = ( 'hello','php_cn');
索引數(shù)組適當(dāng)?shù)淖円幌滦尉统霈F(xiàn)了關(guān)聯(lián)數(shù)組。只要數(shù)組里面有一個(gè)下標(biāo)為字符串的數(shù)組,就為關(guān)聯(lián)數(shù)組。
通過(guò)上例中,我們發(fā)現(xiàn)數(shù)組的下標(biāo)只能夠?yàn)樽址?,?dāng)然不能夠滿足我的需求。
假設(shè)我想聲明一個(gè)下標(biāo)為帥對(duì)應(yīng)陳奕迅這個(gè)值??隙ú荒軡M足我的需求。
那我們來(lái)聲明一下關(guān)聯(lián)數(shù)組。跟索引數(shù)組的聲明方式完成一樣。不過(guò)不同的是,必須要指定字符串的下標(biāo)和必須要使用鍵值對(duì)應(yīng)符。
例如:
<?php //聲明一下關(guān)聯(lián)數(shù)組 $rela = array( '帥' => '陳奕迅', '很帥' => '黃曉明', '灰常灰常帥' => '寧澤濤', '有男人味的大叔' => '吳秀波', ); //再來(lái)玩玩簡(jiǎn)潔聲明 $drink = [ '美' => '鳳姐', '很美' => '芙蓉姐姐', 'verymei' => '楊冪', '心中滴女神呀' => '華妃', 100 => '孫儷', '娘娘', ]; // 輸出 $rela echo '<pre>'; var_dump($rela); // 輸出$drink var_dump($drink); echo '</pre>'; ?>
結(jié)果:
/* array(4) { ["帥"]=> string(9) "陳奕迅" ["很帥"]=> string(9) "黃曉明" ["灰?;页?quot;]=> string(9) "寧澤濤" ["有男人味的大叔"]=> string(9) "吳秀波" } array(6) { ["美"]=> string(6) "鳳姐" ["很美"]=> string(12) "芙蓉姐姐" ["verymei"]=> string(6) "楊冪" ["心中滴女神呀"]=> string(6) "華妃" [100]=> string(6) "孫儷" [101]=> string(6) "娘娘" } */
我們通過(guò)實(shí)驗(yàn)知道:
聲明關(guān)聯(lián)數(shù)組是 鍵名 => 值
在關(guān)聯(lián)數(shù)組可以有索引數(shù)組的元素
關(guān)聯(lián)數(shù)組中的索引數(shù)組的元素后再聲明了無(wú)下標(biāo)的元素,依然是最大值+1原則。(觀察上圖中的值為孫儷、娘娘的兩個(gè)元素)。
其他的關(guān)聯(lián)數(shù)組聲明方式:
<?php $drink['nf'] = '農(nóng)夫山泉'; $cocacola = '可口可樂(lè)'; //當(dāng)然可以是變量喲 $drink['kl'] = $cocacola; $data = array( 'kl' => $cocacola, ); echo '<pre>'; var_dump($drink); echo '</pre>'; // 結(jié)果 /* array(2) { ["nf"]=> string(12) "農(nóng)夫山泉" ["kl"]=> string(12) "可口可樂(lè)" } */ ?>
<?php $rela = ''=>'php中文網(wǎng)','age'3; var_dump($rela); ?>