php陣列可以用數字鍵名,也可用字串鍵名。在PHP中,支援以數字為鍵名的索引數組,也支援以字串或字串、數字混合為鍵名的關聯數組。索引數組的下標(鍵名)由數字組成,預設從0開始,每個數字對應一個數組元素在數組中的位置,不需要特別指定,PHP會自動為索引數組的鍵名賦一個整數值,然後從這個值開始自動遞增。
本教學操作環境:windows7系統、PHP8版、DELL G3電腦
在PHP中,陣列array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區分,這個標識符稱為鍵(也稱為下標)。
陣列中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以透過鍵值來取得對應的陣列元素,這些鍵可以是數值鍵,也可以是關聯鍵。 如果說變數是儲存單一值的容器,那麼陣列就是儲存多個值的容器。
PHP 陣列比其他高階語言中的陣列更靈活,不僅支援以數字為鍵名的索引數組,而且支援以字串或字串、數字混合為鍵名的關聯數組。
注意:PHP中數組其實是不區分索引還是關聯數組,都是根據鍵名找到對應的鍵值。
1、索引數組
索引數組儲存一系列經過組織的單一或多個值,其中的每個值都可以通過使用一個無符號整數值進行存取。
索引數組的下標(鍵名)由數字組成,預設從0 開始,每個數字對應一個數組元素在數組中的位置,不需要特別指定,PHP 會自動為索引數組的鍵名賦一個整數值,然後從這個值開始自動遞增。
索引陣列初始化範例:
<?php header("Content-type:text/html;charset=utf-8"); //创建一个索引数组,索引数组的键是“0”,值是“苹果” $fruit=array("苹果","香蕉"); var_dump($fruit); ?>
執行結果:
#索引陣列的三種賦值方式:
array[0]='蘋果';
#$arr=array('0' =>'蘋果');
$arr=array('蘋果');
例:
<?php //请创建一个数组变量arr,并尝试创建一个索引数组,键是0,值是苹果 $arr=array(0=>'苹果'); if( isset($arr) ) {print_r($arr);} ?>
用for與foreach可以存取到陣列裡面的元素,因for比較容易下面只舉使用foreach的例子,
<?php $fruit=array('苹果','香蕉','菠萝'); foreach($fruit as $key=>$value){ echo '<br>第'.$key.'值是:'.$value; } ?>
運行結果:
第0值是:苹果 第1值是:香蕉 第2值是:菠萝
註:這裡$key是鍵值$value則是元素值
2、關聯數組
「關聯數組」是一種具有特殊索引方式的陣列。使用字串或其他類型的值(除了NULL)來索引它。
其實關聯數組和索引數組的差異只是在鍵值上,關聯數組的鍵值是字串,並且是人為的規定,例如:
<?php //创建一个关联数组,关联数组的键“orange”,值是“橘子” $fruit=array('orange'=>'橘子'); echo $fruit['orange']; ?>
其餘初始化,賦值,foreach的用法基本上相同。
擴充知識:關聯陣列轉索引陣列
在PHP中,可以使用array_values()函數將關聯陣列轉為索引陣列。
array_values() 函數的作用是傳回數組中所有元素的值,使用起來非常簡單,只有一個必選參數,就可以傳回一個包含給定數組中所有值的數組,但不保留鍵名。被傳回的陣列將使用索引數組的形式,數組的索引從 0 開始且以 1 遞增。
array_values() 函數特別適合用於數組中元素下標混亂的數組,或用於將關聯數組轉換為索引數組。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(1=>"1","a"=>"",2=>"2","b"=>0,"c"=>"blue"); echo "原关联数组:"; var_dump($arr); $res=array_values($arr); echo "转换后的数组:"; var_dump($res); ?>
推薦學習:《PHP影片教學》
以上是php數組可以用哪些鍵名的詳細內容。更多資訊請關注PHP中文網其他相關文章!