php數(shù)組的類型:1、索引數(shù)組,其下標(biāo)(鍵名)由數(shù)字組成,默認(rèn)從0開始,每個數(shù)字對應(yīng)一個數(shù)組元素在數(shù)組中的位置;2、關(guān)聯(lián)數(shù)組,其下標(biāo)(鍵名)由數(shù)值和字符串混合的形式組成;3、多維數(shù)組,包含一個或多個數(shù)組的數(shù)組。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
數(shù)組就是一組數(shù)據(jù)的集合,把一系列數(shù)據(jù)組織起來,形成一個可操作的整體。PHP 中的數(shù)組較為復(fù)雜,但比其他許多高級語言中的數(shù)組更為靈活。
數(shù)組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標(biāo)識符來區(qū)分,這個標(biāo)識符稱為鍵(也稱為下標(biāo))。
數(shù)組中的每個實體都包含兩項,分別是鍵(key)和值(value)??梢酝ㄟ^鍵值來獲取相應(yīng)的數(shù)組元素,這些鍵可以是數(shù)值鍵,也可以是關(guān)聯(lián)鍵。如果說變量是存儲單個值的容器,那么數(shù)組就是存儲多個值的容器。
PHP 數(shù)組比其他高級語言中的數(shù)組更加靈活,不但支持以數(shù)字為鍵名的索引數(shù)組,而且支持以字符串或字符串、數(shù)字混合為鍵名的關(guān)聯(lián)數(shù)組。而在其他高級語言中,如 Java 或者 C++ 等語言的數(shù)組,只支持?jǐn)?shù)字索引數(shù)組。
PHP 數(shù)組的結(jié)構(gòu)如下圖所示:
php數(shù)組的類型
-
索引數(shù)組:數(shù)組的下標(biāo)是數(shù)字;
-
關(guān)聯(lián)數(shù)組:數(shù)組的下標(biāo)為字符是關(guān)聯(lián)數(shù)組;
-
多維數(shù)組:包含一個或多個數(shù)組的數(shù)組;
注意:PHP中數(shù)組其實是不區(qū)分索引還是關(guān)聯(lián)數(shù)組,都是根據(jù)鍵名找到對應(yīng)的鍵值
1、索引數(shù)組
索引數(shù)組存儲一系列經(jīng)過組織的單個或多個值,其中的每個值都可以通過使用一個無符號整數(shù)值進(jìn)行訪問。索引數(shù)組的鍵是整數(shù),而且從0開始以此類推。
索引數(shù)組初始化例:
<?php //創(chuàng)建一個索引數(shù)組,索引數(shù)組的鍵是“0”,值是“蘋果” $fruit=array("蘋果","香蕉"); print_r($fruit); ?>
運行結(jié)果:
Array ( [0] => 蘋果 [1] => 香蕉 )
索引數(shù)組的三種賦值方式:
-
array[0]='蘋果';
-
$arr=array('0'=>'蘋果');
-
$arr=array('蘋果');
例:
<?php //請創(chuàng)建一個數(shù)組變量arr,并嘗試創(chuàng)建一個索引數(shù)組,鍵是0,值是蘋果 $arr=array(0=>'蘋果'); if( isset($arr) ) {print_r($arr);} ?>
用for與foreach可以訪問到數(shù)組里面的元素,因for比較容易下面只舉使用foreach的例子,
<?php $fruit=array('蘋果','香蕉','菠蘿'); foreach($fruit as $key=>$value){ echo '<br>第'.$key.'值是:'.$value; } ?>
運行結(jié)果:
第0值是:蘋果 第1值是:香蕉 第2值是:菠蘿
注:這里$key是鍵值$value則是元素值
2、關(guān)聯(lián)數(shù)組
“關(guān)聯(lián)數(shù)組”是一種具有特殊索引方式的數(shù)組。使用字符串或者其他類型的值(除了NULL)來索引它。
其實關(guān)聯(lián)數(shù)組和索引數(shù)組的差別只是在鍵值上,關(guān)聯(lián)數(shù)組的鍵值是字符串,并且是人為的規(guī)定,例如:
<?php //創(chuàng)建一個關(guān)聯(lián)數(shù)組,關(guān)聯(lián)數(shù)組的鍵“orange”,值是“橘子” $fruit=array('orange'=>'橘子'); echo $fruit['orange']; ?>
其余初始化,賦值,foreach的用法基本相同。
3、多維數(shù)組
數(shù)據(jù)結(jié)構(gòu)中的概念, 二維數(shù)組以上的數(shù)組,既非線性也非平面的數(shù)組成為多維數(shù)組。
<?php $arr = array( '安徽' => array( '阜陽'=>array('阜南縣','臨泉縣','潁州區(qū)'), '宿州'=>array('墉橋區(qū)','靈璧縣','泗縣'), '合肥'=>array('蜀山區(qū)','長豐縣','肥東') ), '河南' => array( '洛陽'=>array('西工區(qū)','老城區(qū)','孟津縣'), '鄭州市'=>array('中原區(qū)','金水區(qū)') ) ); print_r($arr); echo $arr['安徽']['宿州'][0]; // 輸出墉橋區(qū) ?>
其中“安徽”對應(yīng)的是一個二維數(shù)組,“阜陽”“宿州”“合肥”分別對應(yīng)一個一維數(shù)組;同理,“河南”也對應(yīng)一個二維數(shù)組?!鞍不铡焙汀昂幽稀狈謩e對應(yīng)一個二維數(shù)組,它倆組合起來形成一個三維數(shù)組。 PHP 中對多維數(shù)組沒有上限的固定限制,但是隨著維數(shù)的增加,數(shù)組會越來越復(fù)雜,對于閱讀調(diào)試和維護(hù)都會稍微困難些。 以上程序的運行結(jié)果為:
Array ( [安徽] => Array ( [阜陽] => Array ( [0] => 阜南縣 [1] => 臨泉縣 [2] => 潁州區(qū) ) [宿州] => Array ( [0] => 墉橋區(qū) [1] => 靈璧縣 [2] => 泗縣 ) [合肥] => Array ( [0] => 蜀山區(qū) [1] => 長豐縣 [2] => 肥東 ) ) [河南] => Array ( [洛陽] => Array ( [0] => 西工區(qū) [1] => 老城區(qū) [2] => 孟津縣 ) [鄭州市] => Array ( [0] => 中原區(qū) [1] => 金水區(qū) ) ) ) 墉橋區(qū)
推薦學(xué)習(xí):《PHP視頻教程》