PHP 的三種類型(索引陣列、關聯陣列、多維陣列)與 字串操作 的常用函式(如 strlen()
、str_replace()
、explode()
)。這些技能對於處理大量資料和文字內容非常重要,並會成為未來專案開發的基礎
1. PHP 陣列(Array)
1.1 陣列的概念
- 陣列 是用來儲存多個值的資料結構,類似一個容器,可以透過索引來存取元素。
- 在 PHP 中,陣列分為三種類型:
- 索引陣列(Indexed Array)
- 關聯陣列(Associative Array)
- 多維陣列(Multidimensional Array)
1.2 索引陣列
索引陣列的元素由數字索引標識,索引從 0
開始。
語法:
$陣列名稱 = [值1, 值2, 值3];
範例程式碼:
<?php
// 定義索引陣列
$fruits = ["蘋果", "香蕉", "葡萄"];
// 存取陣列元素
echo "第一個水果:" . $fruits[0] . "<br>";
echo "第二個水果:" . $fruits[1] . "<br>";
// 使用 foreach 遍歷陣列
foreach ($fruits as $index => $fruit) {
echo "索引 $index:$fruit<br>";
}
?>
輸出結果:
第一個水果:蘋果
第二個水果:香蕉
索引 0:蘋果
索引 1:香蕉
索引 2:葡萄
1.3 關聯陣列
關聯陣列使用自定義鍵值(key)來存取元素,而非索引數字。
語法:
$陣列名稱 = ["鍵1" => "值1", "鍵2" => "值2"];
範例程式碼:
<?php
// 定義關聯陣列
$person = [
"name" => "LiEdward",
"age" => 14,
"city" => "臺南"
];
// 存取元素
echo "名字:" . $person['name'] . "<br>";
echo "年齡:" . $person['age'] . "<br>";
echo "城市:" . $person['city'] . "<br>";
// 遍歷關聯陣列
foreach ($person as $key => $value) {
echo "$key:$value<br>";
}
?>
輸出結果:
名字:LiEdward
年齡:14
城市:臺中
name:LiEdward
age:14
city:臺南
1.4 多維陣列
多維陣列是陣列中包含其他陣列的資料結構。
範例程式碼:
<?php
// 定義多維陣列
$students = [
["name" => "小明", "score" => 90],
["name" => "小華", "score" => 85],
["name" => "小強", "score" => 70]
];
// 存取多維陣列的資料
foreach ($students as $student) {
echo "姓名:" . $student['name'] . ",成績:" . $student['score'] . "<br>";
}
?>
輸出結果:
姓名:小明,成績:90
姓名:小華,成績:85
姓名:小強,成績:70
2. 字串操作
2.1 字串串接與輸出
- 使用
.
進行字串串接。
範例程式碼:
<?php
$name = "Li";
$greeting = "你好," . $name . "!歡迎學習 PHP!";
echo $greeting;
?>
輸出結果:
你好,Li
!歡迎學習 PHP!
2.2 常用字串函式
1. 取得字串長度:strlen()
<?php
$text = "Hello, PHP!";
echo "字串長度:" . strlen($text);
?>
輸出結果:
字串長度:11
2. 找尋字串位置:strpos()
<?php
$text = "Hello, PHP!";
$pos = strpos($text, "PHP");
echo "PHP 出現在索引位置:" . $pos;
?>
輸出結果:
PHP 出現在索引位置:7
3. 字串替換:str_replace()
<?php
$text = "I love JavaScript!";
$newText = str_replace("JavaScript", "PHP", $text);
echo $newText;
?>
輸出結果:
I love PHP!
4. 分割字串:explode()
將字串切割成陣列。
<?php
$text = "蘋果,香蕉,葡萄";
$fruits = explode(",", $text);
foreach ($fruits as $fruit) {
echo "水果:$fruit<br>";
}
?>
輸出結果:
水果:蘋果
水果:香蕉
水果:葡萄
5. 合併陣列為字串:implode()
<?php
$fruits = ["蘋果", "香蕉", "葡萄"];
$text = implode("、", $fruits);
echo "水果列表:" . $text;
?>
輸出結果:
水果列表:蘋果、香蕉、葡萄
3. 綜合練習
練習 1:輸出陣列內容
- 定義一個索引陣列,包含三個你喜歡的食物名稱。
- 使用
foreach
輸出每個食物名稱。
打開看練習程式範例
程式碼:
<?php
// 定義索引陣列,包含喜歡的食物名稱
$foods = ["壽司", "牛排", "義大利麵"];
// 使用 foreach 迴圈輸出陣列內容
echo "我喜歡的食物有:<br>";
foreach ($foods as $index => $food) {
echo "第 " . ($index + 1) . " 項:$food<br>";
}
?>
程式碼解釋:
$foods
陣列中儲存三個喜歡的食物名稱。foreach
用來遍歷陣列元素:$index
表示陣列的索引(從 0 開始)。$food
表示當前陣列的值。
- 輸出索引加上
1
,讓顯示結果更友好。
輸出結果:
我喜歡的食物有:
第 1 項:壽司
第 2 項:牛排
第 3 項:義大利麵
練習 2:字串操作
- 定義一段文字:
"PHP 是一個強大的語言"
。 - 替換字串中的「強大」為「靈活」。
- 計算替換後字串的長度並輸出。
打開看練習程式範例
程式碼:
<?php
// 定義字串
$text = "PHP 是一個強大的語言";
// 使用 str_replace() 替換字串內容
$newText = str_replace("強大", "靈活", $text);
// 使用 strlen() 計算字串長度
$length = strlen($newText);
// 輸出結果
echo "原字串:$text<br>";
echo "替換後字串:$newText<br>";
echo "替換後字串的長度:$length 個字元<br>";
?>
程式碼解釋:
- 使用
str_replace()
:- 將字串中的「強大」替換成「靈活」。
- 語法:
str_replace(尋找字串, 替換字串, 原始字串)
。
- 使用
strlen()
:- 計算替換後字串的長度。
- 輸出原字串、替換後的字串及字串長度。
輸出結果:
原字串:PHP 是一個強大的語言
替換後字串:PHP 是一個靈活的語言
替換後字串的長度:23 個字元
練習 3:多維陣列
- 建立一個多維陣列,包含三個學生的姓名與分數。
- 使用
foreach
遍歷陣列,輸出每個學生的姓名與分數。
打開看練習程式範例
程式碼:
<?php
// 定義多維陣列,包含學生姓名與分數
$students = [
["name" => "小明", "score" => 90],
["name" => "小華", "score" => 85],
["name" => "小強", "score" => 70]
];
// 使用 foreach 遍歷多維陣列
echo "學生成績列表:<br>";
foreach ($students as $student) {
echo "姓名:" . $student['name'] . ",分數:" . $student['score'] . "<br>";
}
?>
程式碼解釋:
- 多維陣列
$students
:- 每個元素是關聯陣列,包含兩個鍵值:
name
(姓名)和score
(分數)。
- 每個元素是關聯陣列,包含兩個鍵值:
foreach
遍歷陣列:- 每次迭代時,
$student
是單個學生的資料。 - 使用
$student['name']
和$student['score']
存取姓名與分數。
- 每次迭代時,
- 輸出格式為「姓名:分數」。
輸出結果:
學生成績列表:
姓名:小明,分數:90
姓名:小華,分數:85
姓名:小強,分數:70
2 Comments