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

PHP 陣列操作速查:建立、鍵值陷阱、常用函數實戰

     編輯:PHP 綜合知識

陣列鍵的隱式轉換規則

  • 整數字符串 '8' → 整數 8
  • 前導零 '02' → 字符串 '02'(非八進制)
  • 浮點數 8.7 → 整數 8(截斷)
  • true/false/null → 1/0/''

裸字符串鍵的風險

<?php
$arr = ['fruit' => 'apple'];
echo $arr[fruit]; // Notice: Use of undefined constant fruit
// 若後定義 define('fruit','veggie'),則 $arr[fruit] 變為 $arr['veggie'] → 'carrot'

// 正確寫法
echo $arr['fruit'];
echo "Hello {$arr['fruit']}"; // 雙引號內建議用 {$arr['key']}

多維陣列訪問練習

<?php
$multi = [
    "red",
    "green",
    42 => "blue",
    "yellow" => [
        "apple",
        9 => "pear",
        "banana",
        "orange" => ["dog","cat","iguana"]
    ]
];

// A. $multi['yellow'][0]          → "apple"
// B. $multi[42]                   → "blue"
// C. $multi['yellow']['orange'][1] → "cat"
// D. $multi[3][3][2]              → "iguana" (索引 3=yellow, 子索引 3=orange, 子子索引 2=iguana)

高頻函數速查表

函數用途示例
array_walk遍歷並修改原陣列array_walk($arr, fn(&$v)=>$v=trim($v))
var_dump / print_r調試輸出結構var_dump($arr)
array_intersect交集(保留鍵)array_intersect($a,$b)
array_sum數值求和array_sum([1,2,3])=6
array_count_values值頻次統計['a','b','a'] → ['a'=>2,'b'=>1]
array_flip鍵值互換['a'=>1,'b'=>2] → [1=>'a',2=>'b']
natsort自然排序['img2','img10','img1'] → img1,img2,img10
ksort/krsort按鍵正/倒序ksort($arr)
asort/arsort按值正/倒序(保留鍵)asort($arr)
usort自定義比較排序usort($arr, fn($a,$b)=>$a<=>$b)
array_reverse反轉順序array_reverse($arr)
array_merge合併(數字鍵重建)array_merge([0=>'a'],[0=>'b']) → ['a','b']
reset/end/next/prev內部指針操作reset($arr)
array_combine兩陣列組成鍵值對array_combine(['a','b'],[1,2])
array_diff差集(僅值)array_diff([1,2,3],[2])=[1,3]
array_filter回調過濾array_filter($arr, fn($v)=>$v>0)
array_search搜值返鍵array_search('a',$arr)

現代寫法提示

  • PHP 7.4+ 箭頭函數 fn($v) => $v * 2 讓回調更簡潔。
  • array_key_first() / array_key_last() 替代 reset()/end() 不改動指針。
  • [] 短語法替代 array()。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved