數組是 PHP 最靈活的數據結構,同時扮演列表、映射、集合、堆棧等角色。本文通過 24 個 Demo 系統講解索引/關聯數組、遍歷方式、多維數組、排序函數族、指針操作、統計去重、鍵值互換等核心技巧。
$arr = ['張三', '李四', '王五']; // 短語法 PHP 5.4+
$arr = range(1, 4); // [1,2,3,4]
$arr = range('a', 'e'); // ['a','b','c','d','e']
默認索引從 0 開始自增。
// foreach 鍵值遍歷(推薦,不受索引類型影響)
foreach ($arr as $key => $val) { echo "$key => $val"; }
// for 循環(僅適用連續數字索引)
for ($i=0; $i
三、關聯數組與自定義鍵(Demo4-7)
$arr = ['baidu'=>'張三', 'taobao'=>'李四'];
$arr['360'] = '王五'; // 動態添加
$arr = []; $arr['chaoyv'] = 25; // 直接賦值創建
四、指針操作與 each/list(Demo8-11)
each():返回當前鍵值並指針後移
reset():指針歸零
list($k, $v) = each($arr):解包賦值
current/next/prev/end:指針移動
五、去重與鍵值翻轉(Demo12-13)
$arr = ['世'=>'何開', '境'=>'何開', '血'=>'趙血兒'];
$unique = array_unique($arr); // 保留首次出現,鍵不變
$flipped = array_flip($arr); // 鍵值互換,重複值後者覆蓋前者
六、多維數組遍歷(Demo14-16)
$products = [
['產品'=>'蘋果', '數量'=>6, '價格'=>28.8],
['產品'=>'豬肉', '數量'=>2, '價格'=>18.8],
];
// 雙重 for
for ($i=0; $i$v) { echo "$k:$v|"; }
echo '<br>';
}
七、排序函數族全景(Demo17-19)
函數 排序依據 鍵名保持 示例
sort 值 重置索引 數字/字符串
rsort 值降序 重置索引 —
asort 值升序 保持關聯 關聯數組
arsort 值降序 保持關聯 —
ksort 鍵升序 保持關聯 按鍵名排序
krsort 鍵降序 保持關聯 —
usort/uksort 自定義回調 視回調 複雜邏輯
排序標誌:SORT_NUMERIC、SORT_STRING、SORT_LOCALE_STRING、SORT_NATURAL、SORT_FLAG_CASE。
八、隨機打亂與反轉(Demo20)
shuffle($arr); // 原地打亂
$rev = array_reverse($arr); // 返回新反轉數組
九、棧/隊列操作(Demo21)
array_unshift($arr, '新元素'); // 數組開頭入棧
array_push($arr, '尾部'); // 數組結尾入隊
array_shift($arr); // 開頭出棧
array_pop($arr); // 結尾出隊
十、隨機取鍵與統計(Demo22-23)
$keys = array_rand($arr, 2); // 取 2 個隨機鍵
echo $arr[$keys[0]];
print_r(array_count_values($arr)); // 值頻率統計
十一、變量導入符號表(Demo24)
$arr = ['a'=>'apple', 'b'=>'banner'];
extract($arr); // 創建 $a='apple', $b='banner'
echo $a . $b; // applebanner
慎用:可能覆蓋現有變量,建議加 EXTR_PREFIX_ALL 前綴。