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

PHP 陣列賦值與操作完全指南:建立、索引、銷毀與進階技巧

     編輯:PHP 綜合知識

陣列基礎認知

PHP 陣列是**有序映射**,鍵可為整數或字串,值可為任意型別。可視為記憶體內的小型資料庫,減少 I/O 提升效能。

建立陣列的多種方式

方式一:字串當陣列存取(隱性建立)

$a = "abcd";
echo $a[0] . " " . $a[1] . " " . $a[2] . " " . $a[3]; // 輸出:a b c d

字串可用索引存取單一字元,但**無法新增元素**。

方式二:array() 語言結構(標準做法)

$http = array("www", "helpphp", "cn");
echo $http[0] . "." . $http[1] . "." . $http[2]; // 輸出:www.helpphp.cn

重點:未指定鍵名時,索引從 0 起始遞增。

方式三:短陣列語法 (PHP 5.4+)

$fruits = ["apple", "banana", "orange"]; // 等同 array(...)

動態賦值與索引管理

$myArray = [];           // 建立空陣列
$myArray[] = "www";      // 索引 0
$myArray[] = "helpphp";  // 索引 1
$myArray[] = "cn";       // 索引 2

echo $myArray[1];        // 輸出:helpphp
print_r($myArray);       // 完整結構檢視

刪除元素與釋放記憶體

unset($myArray[0]); // 刪除索引 0,其餘索引**不重排**,保留原位置
unset($myArray);    // 銷毀整個陣列變數

注意:unset() 後索引會出現斷層,若需重排索引可用 array_values()。

深度檢視陣列結構

var_dump($myArray); // 顯示型別、長度、鍵值細節,除錯首選

關聯陣列與多維陣列實戰

// 關聯陣列
$user = [
    "name" => "小明",
    "email" => "ming@example.com",
    "roles" => ["admin", "editor"]
];

// 存取
echo $user["name"];           // 小明
echo $user["roles"][0];       // admin

// 動態新增
$user["phone"] = "0912-345678";

陣列常用操作速查表

任務函數/語法備註
合併陣列array_merge($a, $b)數字鍵重排,字串鍵後者覆蓋
鍵名是否存在array_key_exists($key, $arr) / isset($arr[$key])isset 速度較快但 null 值會回傳 false
搜尋值回傳鍵array_search($val, $arr)嚴格比較用 in_array($val, $arr, true)
去除重複值array_unique($arr)保留第一次出現的鍵
反轉陣列array_reverse($arr, true)第二參數 true 保留鍵名
切片array_slice($arr, $offset, $len, true)保留鍵名加 true

效能與記憶體小撇步

  • 大量資料優先用生成器 或資料庫游標,避免一次載入全部記憶體
  • 頻繁 unset() 釋放不再使用的大型陣列
  • 僅需遍歷值時用 foreach ($arr as $val),需鍵值用 foreach ($arr as $k => $v)
  • count() 在迴圈條件中會重複計算,先存變數:$len = count($arr); for ($i=0; $i<$len; $i++)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved