首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 陣列定義與賦值完全指南:索引、關聯、多維陣列實戰範例

     編輯:PHP 相關知識

PHP 陣列實為有序映射,支援整數與字串鍵混用,且值類型不限。本文詳細說明陣列建立語法、索引自動生成規則、多維陣列結構、常用填充函式,並附上豐富程式碼範例。

一、建立陣列的三種基本方式

1. 字串視為字元陣列(隱性)

<?php
$str = "abcd";
echo $str[0] . ' ' . $str[1] . ' ' . $str[2] . ' ' . $str[3]; // a b c d
?>

2. array() 語法(傳統)

$arr = array("www", "helpphp", "cn");
echo $arr[0] . '.' . $arr[1] . '.' . $arr[2]; // www.helpphp.cn

3. 短陣列語法 [](PHP 5.4+ 推薦)

$arr = ["www", "helpphp", "cn"]; // 等同 array(...)

二、索引鍵自動生成規則

  • 未指定鍵:從 0 開始遞增整數
  • 指定整數鍵:後續未指定鍵從「最大整數鍵 + 1」繼續
  • 指定浮點數鍵:取整數部分(2.7 => 2)
  • 負數鍵:視為普通整數鍵,不影響自動索引遞增
  • 字串鍵:不參與自動整數索引計算

三、動態賦值與修改

$arr = [];           // 宣告空陣列
$arr[] = "a";        // 追加,索引 0
$arr["key"] = "b";   // 指定字串鍵
$arr[0] = "c";       // 修改索引 0 的值
// 結果:[0 => "c", "key" => "b"]

四、進階宣告範例解析

程式碼結果結構說明
array("a", "b", "c")[0=>"a", 1=>"b", 2=>"c"]純索引陣列
array("a"=>"A", "b", "c")["a"=>"A", 0=>"b", 1=>"c"]指定字串鍵後,數字索引從 0 重新開始
array(2=>"a", 0=>"b", "c")[2=>"a", 0=>"b", 3=>"c"]最大整數鍵為 2,下一個自動索引為 3
array("a", 2.7=>"b", 0=>"c")[0=>"c", 2=>"b"]浮點鍵取整,後指定鍵覆蓋先前同鍵值
array(-2=>"a", "b", "c")[-2=>"a", 0=>"b", 1=>"c"]負數鍵不影響自動索引

五、多維陣列建立

$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
echo $matrix[1][2]; // 6

// 關聯式多維
$users = [
    'john' => ['age' => 25, 'city' => 'Taipei'],
    'mary' => ['age' => 30, 'city' => 'Taichung']
];
echo $users['mary']['city']; // Taichung

六、常用填充與範圍函式

range(2, 5);           // [2, 3, 4, 5] 產生連續整數陣列
range('a', 'd');       // ['a', 'b', 'c', 'd'] 字元範圍
count($arr);           // 陣列元素個數
array_pad($arr, 5, 0); // 長度不足 5 時用 0 填充右側,超過則不變
array_pad($arr, -5, 0); // 負數長度填充左側

七、實務提醒

  1. 避免在同一陣列混用整數與字串鍵造成邏輯混淆
  2. 大量數值陣列考慮使用 SplFixedArray 節省記憶體
  3. JSON 編碼時,連續整數鍵從 0 開始會輸出陣列 [],否則輸出物件 {}
  4. [] 語法不可用於 PHP 5.3 以下版本
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved