參考: w3schools
我整理了幾個 比較基礎和重要的函式
count
回傳陣列元素的數量
<?php
$fruit=["apple", "banana", "cherry"];
echo count($fruit); //3
?>
in_array
查詢值是否存在於陣列中
<?php
$fruit = ["apple", "banana", "cherry"];
echo in_array("apple", $fruit); // 1
?>
說明:因為存在所以輸出 1,echo 輸出的是字串,布林 true 會被轉為 1,若值不存在則輸出空字串。這個函式常用於條件判斷,避免重複寫迴圈比對陣列
array_key_exists
檢查key是否存在
<?php
$fruit=[1=>"apple", 2=>"banana", 3=>"cherry"];
echo array_key_exists(1, $fruit) ? "true" : "false"; // true
?>
說明:因為1這個key存在於fruit這個陣列所以執行?右邊的true
array_push
將元素加入陣列尾端 (專案中常用於動態增加資料,例如新增使用者輸入或資料庫查詢結果)
$stack = ["apple", "banana"];
array_push($stack, "cherry");
print_r($stack);
/*
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
*/
array_pop
刪除陣列最後一個元素
$stack = ["apple", "banana", "cherry"];
$last = array_pop($stack);
print_r($stack);
/*
Array
(
[0] => apple
[1] => banana
)
*/
array_shift
刪除陣列第一個元素 (適合需要先進先出操作,例如處理佇列任務或排程資料)
$queue = ["apple", "banana", "cherry"];
$first = array_shift($queue);
print_r($queue);
/*
Array
(
[0] => banana
[1] => cherry
)
*/
array_unshift
將元素加入陣列開頭 (可用在專案中需要在陣列開頭插入資料時使用)
$queue = ["banana", "cherry"];
array_unshift($queue, "apple");
print_r($queue);
/*
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
*/
array_merge
合併一個或多個陣列
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$result = array_merge($array1, $array2);
print_r($result);
/* 輸出:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
*/ 數字鍵會 重新編號,順序從 0 開始,適合需要將多個資料集合併為單一陣列時使用。
sort
排序陣列值
將陣列中的值依 字母或數字大小 由小到大排序。
數字 → 按數值大小排序
字串 → 按 ASCII 編碼大小 排序(A–Z < a–z)
重置索引
原本陣列的 key(索引)會被重新編號,從 0 開始。
適用於「只在乎值,不在乎原 key」的陣列。
$words = ["banana", "Apple", "cherry", "apple", "Banana", "Cherry"];
sort($words);
foreach ($words as $key=>$value) {
echo "words[$key] = $value\n";
}
/* 輸出:
words[0] = Apple
words[1] = Banana
words[2] = Cherry
words[3] = apple
words[4] = banana
words[5] = cherry
*/
?> // 我是在cli裡面執行php 所以用\n換行,若在瀏覽器執行則要用<br>
ksort()
按照陣列的key排序
$fruits = [
3 => "cherry",
1 => "apple",
2 => "banana"
];
ksort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[$key] = $val\n";
}
/* 輸出:
fruits[1] = apple
fruits[2] = banana
fruits[3] = cherry
*/
函式 | 排序依據 | 是否重置 key | 適合用於 |
---|---|---|---|
sort() |
值 (value) | 是 | 單純值排序,不在乎 key |
ksort() |
鍵 (key) | 否 | 需要保留 key 對應的情況 |