在本教程中,您將學習如何在PHP中的單個變量中存儲多個值。
數(shù)組是復雜的變量,允許我們在單個變量名下存儲多個值或一組值。 假設(shè)您想要在PHP腳本中存儲顏色,將顏色逐個存儲在變量中可能如下所示:
<?php $color1 = "Red"; $color2 = "Green"; $color3 = "Blue"; echo $color1; echo "<br>"; echo $color2; echo "<br>"; echo $color3; ?>測試看看?/?
但是,如果您想將國家/地區(qū)的州名或城市名存儲在變量中,那么這次不只是三個就可能是一百個。 將每個城市的名稱存儲在單獨的變量中是非常困難,糟糕且不明智的做法。 數(shù)組在這里就開始起作用了。
您可以創(chuàng)建三種類型的數(shù)組。這些是:
索引數(shù)組 — 具有數(shù)字鍵的數(shù)組。
關(guān)聯(lián)數(shù)組 — 每個鍵都有其特定值的數(shù)組。
多維數(shù)組 — 本身包含一個或多個數(shù)組的數(shù)組。
索引數(shù)組或數(shù)字數(shù)組存儲每個具有數(shù)字索引的數(shù)組元素。以下示例顯示了創(chuàng)建索引數(shù)組的兩種方法,最簡單的方法是:
<?php //定義一個索引數(shù)組 $colors = array("Red", "Green", "Blue"); // 打印數(shù)組結(jié)構(gòu) print_r($colors); ?>測試看看?/?
注意:在索引或數(shù)字數(shù)組中,將自動分配索引并從0開始,并且值可以是任何數(shù)據(jù)類型。
這等效于以下示例,其中手動分配了索引:
<?php $colors[0] = "Red"; $colors[1] = "Green"; $colors[2] = "Blue"; // 打印數(shù)組結(jié)構(gòu) print_r($colors); ?>測試看看?/?
在關(guān)聯(lián)數(shù)組中,分配給值的鍵可以是任意的和用戶定義的字符串。在以下示例中,數(shù)組使用鍵而不是索引號:
<?php //定義一個關(guān)聯(lián)數(shù)組 $ages = array("Peter"=>22, "Clark"=>32, "John"=>28); // 打印數(shù)組結(jié)構(gòu) print_r($ages ); ?>測試看看?/?
下面的示例與前面的示例等效,但是顯示了創(chuàng)建關(guān)聯(lián)數(shù)組的另一種方式:
<?php $ages["Peter"] = "22"; $ages["Clark"] = "32"; $ages["John"] = "28"; // 打印數(shù)組結(jié)構(gòu) print_r($ages ); ?>測試看看?/?
多維數(shù)組是一個數(shù)組,其中每個元素也可以是一個數(shù)組,子數(shù)組中的每個元素可以是一個數(shù)組,或者進一步在其內(nèi)部包含數(shù)組,依此類推。多維數(shù)組的示例如下所示:
<?php //定義多維數(shù)組 $contacts = array( array( "name" => "Peter Parker", "email" => "peterparker@mail.com", ), array( "name" => "Clark Kent", "email" => "clarkkent@mail.com", ), array( "name" => "Harry Potter", "email" => "harrypotter@mail.com", ) ); //訪問嵌套值 echo "彼得.帕克的電子郵件 id 是: " . $contacts[0]["email"]; ?>測試看看?/?
您可以使用兩個語句 var_dump()或 print_r() 之一,查看任何數(shù)組的結(jié)構(gòu)和值。但是print_r()語句提供的信息稍少一些。看以下示例:
<?php //定義數(shù)組 $cities = array("London", "Paris", "New York"); //顯示城市數(shù)組 print_r($cities); ?>測試看看?/?
print_r() 語句提供以下輸出:
Array ( [0] => London [1] => Paris [2] => New York )
此輸出顯示數(shù)組中每個元素的鍵和值。要獲取更多信息,請使用以下語句:
<?php //定義數(shù)組 $cities = array("London", "Paris", "New York"); //顯示城市數(shù)組 var_dump($cities); ?>測試看看?/?
var_dump()語句提供以下輸出:
array(3)?{?[0]=>?string(6) "London" [1]=>?string(5) "Paris" [2]=>?string(8) "New?York"?}
除了鍵和值,此輸出還顯示每個元素的數(shù)據(jù)類型,例如6個字符的字符串。在下一章,您將學習如何對數(shù)組元素進行排序。
在循環(huán)章節(jié)中,您將學習如何遍歷數(shù)組的值。