PHP 陣列
在本教程中,你將學習如何在 PHP 中的單個變數中儲存多個值。
什麼是 PHP 陣列
陣列是複雜的變數,允許我們在單個變數名下儲存多個值或一組值。假設你想在 PHP 指令碼中儲存顏色。在變數中逐個儲存顏色可能如下所示:
<?php
$color1 = "Red";
$color2 = "Green";
$color3 = "Blue";
?>
但是,如果你想在變數中儲存一個國家的州或城市名稱,那麼這次不僅僅是三個。將每個城市名稱儲存在單獨的變數中是相當困難,也是一個糟糕的點子。這裡陣列開始發揮作用。
PHP 中的陣列型別
你可以建立三種型別的陣列。這些是:
- 索引陣列 - 帶數字鍵的陣列。
- 關聯陣列 - 每個鍵都有自己特定值的陣列。
- 多維陣列 - 包含一個或多個陣列的陣列。
索引陣列
索引或數字陣列使用數字索引儲存每個陣列元素。以下示例顯示了建立索引陣列的兩種方法,最簡單的方法是:
<?php
// Define an indexed array
$colors = array("Red", "Green", "Blue");
?>
注意: 在索引或數字陣列中,索引會自動分配並以 0 開頭,值可以是任何資料型別。
這相當於以下示例,其中手動分配了索引:
<?php
$colors[0] = "Red";
$colors[1] = "Green";
$colors[2] = "Blue";
?>
關聯陣列
在關聯陣列中,分配給值的鍵可以是任意的和使用者定義的字串。在以下示例中,陣列使用鍵而不是索引號:
<?php
// Define an associative array
$ages = array("Peter"=>22, "Clark"=>32, "John"=>28);
?>
以下示例與前面的示例等效,但顯示了建立關聯陣列的不同方法:
<?php
$ages["Peter"] = "22";
$ages["Clark"] = "32";
$ages["John"] = "28";
?>
多維陣列
多維陣列是一個陣列,其中每個元素也可以是一個陣列,子陣列中的每個元素可以是一個陣列,或者進一步包含自身內的陣列,依此類推。多維陣列的示例如下所示:
<?php
// Define a multidimensional array
$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",
)
);
// Access nested value
echo "Peter Parker's Email-id is: " . $contacts[0]["email"];
?>
檢視陣列結構和值
你可以使用兩個語句之一來檢視任何陣列的結構和值 - var_dump()
或 print_r()
。 print_r()
但是,該宣告提供的資訊較少。請考慮以下示例:
<?php
// Define array
$cities = array("London", "Paris", "New York");
// Display the cities array
print_r($cities);
?>
該 print_r()
語句給出以下輸出:
陣列([0] =>倫敦[1] =>巴黎[2] =>紐約)
此輸出顯示陣列中每個元素的鍵和值。要獲取更多資訊,請使用以下語句:
<?php
// Define array
$cities = array("London", "Paris", "New York");
// Display the cities array
var_dump($cities);
?>
該 var_dump()
語句給出以下輸出:
array(3)
{[0] => string(6)
London
[1] => string(5)
Paris
[2] => string(8)
“New York”}
除了鍵和值之外,此輸出還顯示每個元素的資料型別,例如 6 個字元的字串。在下一章中,你將學習如何對陣列元素進行排序。
你將在後面的章節中學習如何遍歷陣列的值。