php數(shù)組可以用數(shù)字鍵名,也可用字符串鍵名。在PHP中,支持以數(shù)字為鍵名的索引數(shù)組,也支持以字符串或字符串、數(shù)字混合為鍵名的關(guān)聯(lián)數(shù)組。索引數(shù)組的下標(biāo)(鍵名)由數(shù)字組成,默認(rèn)從0開始,每個(gè)數(shù)字對(duì)應(yīng)一個(gè)數(shù)組元素在數(shù)組中的位置,不需要特別指定,PHP會(huì)自動(dòng)為索引數(shù)組的鍵名賦一個(gè)整數(shù)值,然后從這個(gè)值開始自動(dòng)遞增。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8版、DELL G3電腦
在PHP中,數(shù)組 array 是一組有序的變量,其中每個(gè)值被稱為一個(gè)元素。每個(gè)元素由一個(gè)特殊的標(biāo)識(shí)符來區(qū)分,這個(gè)標(biāo)識(shí)符稱為鍵(也稱為下標(biāo))。
數(shù)組中的每個(gè)實(shí)體都包含兩項(xiàng),分別是鍵(key)和值(value)??梢酝ㄟ^鍵值來獲取相應(yīng)的數(shù)組元素,這些鍵可以是數(shù)值鍵,也可以是關(guān)聯(lián)鍵。如果說變量是存儲(chǔ)單個(gè)值的容器,那么數(shù)組就是存儲(chǔ)多個(gè)值的容器。
PHP 數(shù)組比其他高級(jí)語言中的數(shù)組更加靈活,不但支持以數(shù)字為鍵名的索引數(shù)組,而且支持以字符串或字符串、數(shù)字混合為鍵名的關(guān)聯(lián)數(shù)組。
注意:PHP中數(shù)組其實(shí)是不區(qū)分索引還是關(guān)聯(lián)數(shù)組,都是根據(jù)鍵名找到對(duì)應(yīng)的鍵值。
1、索引數(shù)組
索引數(shù)組存儲(chǔ)一系列經(jīng)過組織的單個(gè)或多個(gè)值,其中的每個(gè)值都可以通過使用一個(gè)無符號(hào)整數(shù)值進(jìn)行訪問。
索引數(shù)組的下標(biāo)(鍵名)由數(shù)字組成,默認(rèn)從 0 開始,每個(gè)數(shù)字對(duì)應(yīng)一個(gè)數(shù)組元素在數(shù)組中的位置,不需要特別指定,PHP 會(huì)自動(dòng)為索引數(shù)組的鍵名賦一個(gè)整數(shù)值,然后從這個(gè)值開始自動(dòng)遞增。
索引數(shù)組初始化例:
<?php header("Content-type:text/html;charset=utf-8"); //創(chuàng)建一個(gè)索引數(shù)組,索引數(shù)組的鍵是“0”,值是“蘋果” $fruit=array("蘋果","香蕉"); var_dump($fruit); ?>
運(yùn)行結(jié)果:
索引數(shù)組的三種賦值方式:
-
array[0]='蘋果';
-
$arr=array('0'=>'蘋果');
-
$arr=array('蘋果');
例:
<?php //請(qǐng)創(chuàng)建一個(gè)數(shù)組變量arr,并嘗試創(chuàng)建一個(gè)索引數(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; } ?>
運(yùn)行結(jié)果:
第0值是:蘋果 第1值是:香蕉 第2值是:菠蘿
注:這里$key是鍵值$value則是元素值
2、關(guān)聯(lián)數(shù)組
“關(guān)聯(lián)數(shù)組”是一種具有特殊索引方式的數(shù)組。使用字符串或者其他類型的值(除了NULL)來索引它。
其實(shí)關(guān)聯(lián)數(shù)組和索引數(shù)組的差別只是在鍵值上,關(guān)聯(lián)數(shù)組的鍵值是字符串,并且是人為的規(guī)定,例如:
<?php //創(chuàng)建一個(gè)關(guān)聯(lián)數(shù)組,關(guān)聯(lián)數(shù)組的鍵“orange”,值是“橘子” $fruit=array('orange'=>'橘子'); echo $fruit['orange']; ?>
其余初始化,賦值,foreach的用法基本相同。
擴(kuò)展知識(shí):關(guān)聯(lián)數(shù)組轉(zhuǎn)索引數(shù)組
在PHP中,可以使用array_values()函數(shù)來將關(guān)聯(lián)數(shù)組轉(zhuǎn)為索引數(shù)組。
array_values() 函數(shù)的作用是返回?cái)?shù)組中所有元素的值,使用起來非常簡(jiǎn)單,只有一個(gè)必選參數(shù),就可以返回一個(gè)包含給定數(shù)組中所有值的數(shù)組,但不保留鍵名。被返回的數(shù)組將使用索引數(shù)組的形式,數(shù)組的索引從 0 開始且以 1 遞增。
array_values() 函數(shù)特別適合用于數(shù)組中元素下標(biāo)混亂的數(shù)組,或者用于將關(guān)聯(lián)數(shù)組轉(zhuǎn)化為索引數(shù)組。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(1=>"1","a"=>"",2=>"2","b"=>0,"c"=>"blue"); echo "原關(guān)聯(lián)數(shù)組:"; var_dump($arr); $res=array_values($arr); echo "轉(zhuǎn)換后的數(shù)組:"; var_dump($res); ?>
推薦學(xué)習(xí):《PHP視頻教程》