PHP - 關聯數組:初學者指南

你好,未來的PHP大師!今天,我們將踏上一段令人興奮的旅程,進入PHP關聯數組的世界。如果你從未編過程,也不要擔心 - 我將成為你的友好導遊,我們會一步一步地學習。在這個教學的結尾,你將能夠像專業人士一樣創建和操作關聯數組!

PHP - Associative Array

什麼是關聯數組?

在我們深入探討之前,讓我們先了解什麼是關聯數組。想像你有一個神奇的盒子,你可以在其中存儲物品,但與其為每個物品編號,你不如給它們獨特的標籤。這基本上就是PHP中關聯數組的概念 - 一個由鍵值對組成的集合,其中每個值都與一個特定的鍵相關聯。

如何在PHP中聲明關聯數組?

讓我們從基礎開始 - 如何創建關聯數組。在PHP中,我們使用array()函數或更短的[]語法來聲明數組。對於關聯數組,我們為每個元素指定鍵和值。

範例 1:創建一個簡單的關聯數組

<?php
$fruits = array(
"apple" => "red",
"banana" => "yellow",
"grape" => "purple"
);

// 使用 [] 的替代語法
$fruits = [
"apple" => "red",
"banana" => "yellow",
"grape" => "purple"
];
?>

在這個例子中,我們創建了一個名為$fruits的關聯數組。每種水果(鍵)都與其顏色(值)相關聯。=>運算符用於將值分配給鍵。

範例 2:向現有數組中添加元素

<?php
$fruits = ["apple" => "red", "banana" => "yellow"];

// 添加一個新元素
$fruits["orange"] = "orange";

// 修改一個現有元素
$fruits["apple"] = "green";

print_r($fruits);
?>

輸出:

Array
(
[apple] => green
[banana] => yellow
[orange] => orange
)

在這裡,我們向數組中添加了一種新水果(橙子)並改變了蘋果的顏色。print_r()函數是顯示數組內容的便捷方式。

使用鍵訪問值

現在我們有了數組,我們如何獲取特定的值?這很簡單 - 我們使用鍵!

範例 3:訪問數組元素

<?php
$fruits = ["apple" => "red", "banana" => "yellow", "grape" => "purple"];

echo "The color of an apple is " . $fruits["apple"];
echo "<br>";
echo "The color of a grape is " . $fruits["grape"];
?>

輸出:

The color of an apple is red
The color of a grape is purple

在這個例子中,我們使用鍵("apple" 和 "grape")來訪問它們對應的值。這就像問我們的神奇盒子:"蘋果的顏色是什麼?"

遍歷PHP關聯數組

通常,你會想要遍歷數組中的所有元素。PHP提供了多種方法來做到這點,但對於關聯數組最常見的是foreach循環。

範例 4:使用foreach遍歷數組

<?php
$student_scores = [
"Alice" => 85,
"Bob" => 92,
"Charlie" => 78,
"Diana" => 96
];

foreach ($student_scores as $student => $score) {
echo "$student scored $score points.<br>";
}
?>

輸出:

Alice scored 85 points.
Bob scored 92 points.
Charlie scored 78 points.
Diana scored 96 points.

在這個foreach循環中,$student代表鍵(學生姓名),$score代表值(他們的得分)。循環遍歷數組中的每個鍵值對,允許我們對每個元素進行操作。

範例 5:使用foreach僅获取值

如果你只需要值而不需要鍵,你可以簡化foreach循環:

<?php
$fruits = ["apple" => "red", "banana" => "yellow", "grape" => "purple"];

foreach ($fruits as $color) {
echo "I love $color fruits!<br>";
}
?>

輸出:

I love red fruits!
I love yellow fruits!
I love purple fruits!

在這裡,我們只對顏色感興趣,所以我們不需要在foreach循環中指定鍵。

關聯數組的有用函數

讓我們看看一些你可以與關聯數組一起使用的手動函數:

函數 描述 範例
array_keys() 返回數組中的所有鍵 $keys = array_keys($fruits);
array_values() 返回數組中的所有值 $colors = array_values($fruits);
count() 返回數組中的元素數量 $num_fruits = count($fruits);
in_array() 檢查數組中是否存在某個值 if (in_array("red", $fruits)) { ... }
array_key_exists() 檢查數組中是否存在某個鍵 if (array_key_exists("apple", $fruits)) { ... }

範例 6:使用數組函數

<?php
$fruits = ["apple" => "red", "banana" => "yellow", "grape" => "purple"];

$fruit_names = array_keys($fruits);
echo "Fruit names: " . implode(", ", $fruit_names) . "<br>";

$fruit_colors = array_values($fruits);
echo "Fruit colors: " . implode(", ", $fruit_colors) . "<br>";

echo "Number of fruits: " . count($fruits) . "<br>";

if (in_array("yellow", $fruits)) {
echo "We have a yellow fruit!<br>";
}

if (array_key_exists("banana", $fruits)) {
echo "We have a banana!<br>";
}
?>

輸出:

Fruit names: apple, banana, grape
Fruit colors: red, yellow, purple
Number of fruits: 3
We have a yellow fruit!
We have a banana!

這個例子演示了如何使用各種數組函數來操作和提取我們關聯數組中的信息。

結論

恭喜你!你剛剛踏入了PHP關聯數組世界的第一步。我們已經介紹了如何創建它們、訪問它們的元素、遍歷它們以及使用一些方便的函數。記住,熟練需要練習,所以不要害怕嘗試這些概念。

隨著你PHP旅程的繼續,你會發現關聯數組在組織和操作數據方面非常有用。它們就像瑞士軍刀一樣 - 多功能、強大且對任何程序員的工具包都至關重要。

持續編程,保持好奇心,並且快樂地使用PHP!

Credits: Image by storyset