首頁 >後端開發 >PHP問題 >php的陣列有幾種類型

php的陣列有幾種類型

zbt
zbt原創
2023-06-12 11:33:531000瀏覽

php數組的類型:1、索引數組,儲存一系列經過組織的單一或多個值,下標是數字;2、關聯數組,是具有特殊索引方式的數組,下標為字符;3、多維數組,資料結構中的概念, 二維數組以上的數組,包含一個或多個數組的數組。

php的陣列有幾種類型

本教學操作環境:windows10系統、php8.1.3版本、DELL G3電腦。

陣列就是一組資料的集合,把一系列資料組織起來,形成一個可操作的整體。 PHP 中的陣列較為複雜,但比其他許多高階語言中的陣列更為靈活。

數組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區分,這個標識符稱為鍵(也稱為下標)。

陣列中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以透過鍵值來取得對應的陣列元素,這些鍵可以是數值鍵,也可以是關聯鍵。如果說變數是儲存單一值的容器,那麼陣列就是儲存多個值的容器。

PHP 陣列比其他高階語言中的陣列更靈活,不但支援以數字為鍵名的索引數組,而且支援以字串或字串、數字混合為鍵名的關聯數組。而在其他高階語言中,如 Java 或 C 等語言的數組,則只支援數字索引數組。

PHP 陣列的結構如下圖所示:

php陣列的型別

索引陣列:陣列的下標是數字;

關聯數組:數組的下標為字元是關聯數組;

多維數組:包含一個或多個數組的數組;

注意:PHP中數組其實是不區分索引還是關聯數組,都是根據鍵名找到對應的鍵值

1、索引數組

索引數組儲存一系列經過組織的單一或多個值,其中的每個值都可以透過使用一個無符號整數值來存取。索引數組的鍵是整數,而且從0開始以此類推。

索引陣列初始化範例:

<?php 
//创建一个索引数组,索引数组的键是“0”,值是“苹果” 
$fruit=array("苹果","香蕉"); 
print_r($fruit); 
?>

執行結果:

Array
(
    [0] => 苹果
    [1] => 香蕉
)

索引陣列的三種賦值方式:

array[0]=&#39;苹果&#39;;
$arr=array(&#39;0&#39;=>&#39;苹果&#39;);
$arr=array(&#39;苹果&#39;);

範例:

<?php 
//请创建一个数组变量arr,并尝试创建一个索引数组,键是0,值是苹果 
$arr=array(0=>&#39;苹果&#39;); 
if( isset($arr) ) {print_r($arr);} 
?>

用for與foreach可以存取到陣列裡面的元素,因for比較容易下面只舉使用foreach的例子,

<?php 
$fruit=array(&#39;苹果&#39;,&#39;香蕉&#39;,&#39;菠萝&#39;); 
foreach($fruit as $key=>$value){ 
    echo &#39;<br>第&#39;.$key.&#39;值是:&#39;.$value; 
} 
   
?>

運行結果:

第0值是:苹果
第1值是:香蕉
第2值是:菠萝

註:這裡$key是鍵值$value則是元素值

2、關聯陣列

「關聯陣列」是一種具有特殊索引方式的陣列。使用字串或其他類型的值(除了NULL)來索引它。

其實關聯數組和索引數組的差異只是在鍵值上,關聯數組的鍵值是字串,並且是人為的規定,例如:

<?php 
//创建一个关联数组,关联数组的键“orange”,值是“橘子” 
$fruit=array(&#39;orange&#39;=>&#39;橘子&#39;); 
echo $fruit[&#39;orange&#39;]; 
?>

其餘初始化,賦值,foreach的用法基本上相同。

3、多維數組

資料結構中的概念, 二維數組以上的數組,既非線性也非平面的數組成為多維數組。

<?php
    $arr = array(
        &#39;安徽&#39; => array(
            &#39;阜阳&#39;=>array(&#39;阜南县&#39;,&#39;临泉县&#39;,&#39;颍州区&#39;),
            &#39;宿州&#39;=>array(&#39;墉桥区&#39;,&#39;灵璧县&#39;,&#39;泗县&#39;),
            &#39;合肥&#39;=>array(&#39;蜀山区&#39;,&#39;长丰县&#39;,&#39;肥东&#39;)
        ),
        &#39;河南&#39; => array(
            &#39;洛阳&#39;=>array(&#39;西工区&#39;,&#39;老城区&#39;,&#39;孟津县&#39;),
            &#39;郑州市&#39;=>array(&#39;中原区&#39;,&#39;金水区&#39;)
        )
    );
    print_r($arr);
    echo $arr[&#39;安徽&#39;][&#39;宿州&#39;][0];  // 输出墉桥区
?>

其中「安徽」對應的是一個二維數組,「阜陽」「宿州」「合肥」分別對應一個一維數組;同理,「河南」也對應一個二維數組。 「安徽」和「河南」分別對應一個二維數組,它兩個組合起來形成一個三維數組。 PHP 中對多維數組沒有上限的固定限制,但隨著維數的增加,陣列會越來越複雜,對於閱讀偵錯和維護都會稍微困難些。以上程式的運行結果為:

Array
(
    [安徽] => Array
        (
            [阜阳] => Array
                (
                    [0] => 阜南县
                    [1] => 临泉县
                    [2] => 颍州区
                )
            [宿州] => Array
                (
                    [0] => 墉桥区
                    [1] => 灵璧县
                    [2] => 泗县
                )
            [合肥] => Array
                (
                    [0] => 蜀山区
                    [1] => 长丰县
                    [2] => 肥东
                )
        )
    [河南] => Array
        (
            [洛阳] => Array
                (
                    [0] => 西工区
                    [1] => 老城区
                    [2] => 孟津县
                )
            [郑州市] => Array
                (
                    [0] => 中原区
                    [1] => 金水区
                )
        )
)
墉桥区

以上是php的陣列有幾種類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn