詳解PHP對數組的定義以及數組的建立方法_php技巧

來源:互聯網
上載者:User

傳統上把數組(array)定義為一組有某種共同特性的元素,這裡的共同特性包括相似性(車模、棒球隊、水果類型等)和類型(例如所有元素都是字串或整數)等,每個元素由一個特殊的標識符來區分,這稱為健(key)。請注意,上面這句話中的傳統上一詞,因為現在可以摒棄這種定義,數組結構中可以包括完全無關的元素。PHP則更進一步,數組中的元素甚至可以不屬於同一種類型。例如,一個數組可能包含州名、郵遞區號、考試成績或撲克牌等元素。

每個實體包含兩個項:前面提到的健(key)和值(value)。可以通過查詢鍵來擷取其相應的值。這些鍵可以是數值(numerical) 健或關聯(associative)健。數值鍵與值沒有真正的聯絡,它們只是值在數組中的位置。例如,一個數組中包含按字母順序排列的水果名,鍵0表示apple,鍵2表示pear。使用PHP文法,該數組如下:

$fruits = array( "0"=>"apple", "1"=>"banana" "2"=>"pear" );

使用數組索引,可以如下引用第一個元素(apple):

$fruits[0]

PHP的數值索引組以位置0起始,而不是1。

與此不同的是,關聯鍵與值有一定關係,而不是值在數組中的位置。使用數值索引值不可行時,以關聯的方式來映射數組會特別方便。例如,你可能希望建立一個將水果縮寫映射到水果名的數組,如AP/apple、BA/banana和PE/Pear。使用PHP文法,該數組如下:

$fruits = array( "AP"=>"apple", "BA"=>"banana", "PE"=>"pear" );

可以如下引用apple:

$fruits["AP"];

還可以建立包含數組的數組,這稱為多維陣列(multidimensional arrays)。例如,可以使用一個多維陣列儲存水果的資訊。使用PHP文法,該數組如下:

$fruits = array(  "apple"=>array( "name"=>"apple", "color"=>"red" ), "banana"=>array( "name"=>"banana", "color"=>"yellow" ));

然後可以如下引用apple的color:

$states["apple"]["color"];

這將返回以下值:

red

你自然會想知道遍曆數組的方法。PHP提供了很多遍曆數組的方法。無論使用哪一種方法,要記住,它們都依賴於一種稱為數組指標(array pointer)的特性。數組指標就如同書籤,告訴你正在檢查的數組位置。你並不是直接運算元組指標,而是使用內建的語言特性或函數來遍曆數組。但是,理解這個基本概念很有用。


數組是PHP最重要的資料結構之一,數組在PHP的用處很廣泛。與其他很多語言的數組實現方式不同,PHP不需要在建立數組時指定其大小。事實上,因為PHP是一種鬆散類型的語言,所以甚至不需要在使用數組前先行聲明,儘管沒有限制,PHP仍提供了正式和非正式的數組聲明方法。兩個方法各有優點,都值得學習。下面將分別討論這兩種方法,首先來介紹非正式的方法。

要引用PHP數組中的各個元素,可以用一對中括弧來指示。因為數組沒有大小限制,所以只需建立引用就可以建立數組,例如:

$fruits[0] = "apple";

然後,可以如下顯示數組$fruits的第一個元素:

echo $fruits[0] = "apple";

接下來,可以為數組索引映射新值,從而添加其他的值,如下:

$fruits[1] = "banana";$fruits[2] = "pear";

有趣的是,如果認為索引值是數組索引而且是遞增的,還可以在建立時省略索引值:

$fruits[] = "apple";$fruits[] = "banana";$fruits[] = "pear";

用這種方式建立關聯陣列也同樣很簡單,只不過必須一直使用鍵。下面的執行個體建立了一個數組,它將水果映射到其顏色:

$fruits["apple"] = "red";$fruits["banana"] = "yellow";$fruits["pear"] = "yellow";

使用array()建立數組

array()函數接受0個或多個元素作為輸入,返回一個包含這些收入元素的數組。其形式如下:

array array([item1,[,item2…[,itemN]]])

下面是一個使用array()建立索引數組的例子:

$fruits = array("apple","banana","pear");

還可以使用array()建立一個關聯陣列,如下:

$fruits = array( "AP"=>"apple", "BA"=>"banana", "PE"=>"pear" );

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.