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 個字元的字串。在下一章中,你將學習如何對陣列元素進行排序。

你將在後面的章節中學習如何遍歷陣列的值。