数组是 PHP 里用来批量存储多个数据的 “容器”,比如想一次性存 10 种熏香名称、5 个香品价格,用数组比定义 10 个、5 个单独变量方便 10 倍。这篇文章用最通俗的方式,带你搞懂 PHP 数组的核心定义方法,新手也能一看就会。
参考:https://app-adw41tukuebl.appmiaoda.com/article/125.html
一、先理解:什么是 PHP 数组?
生活例子:
你有一个 “熏香收纳盒”(数组),里面可以分格子放檀香、沉香、艾草香(数组里的元素),每个格子有编号(数组下标),想拿哪个直接按编号取就行。
对应 PHP:数组就是把多个相关数据(字符串、数字、甚至另一个数组)放在一起,用 “下标”(索引)区分每个数据,方便批量管理。
参考:https://app-adw41tukuebl.appmiaoda.com/article/61.html
二、PHP 数组的 3 种核心定义方式(从简单到常用)
1. 最基础:array () 函数定义(兼容所有 PHP 版本)
这是最经典的写法,新手先掌握这种,不管是 PHP5 还是 PHP8 都能用。
// 示例1:索引数组(下标默认从0开始,按顺序编号) // 存多种熏香名称 $xiang_list = array('檀香', '沉香', '艾草香', '合香'); // 取第1个元素(下标0):输出“檀香” echo $xiang_list[0]; // 取第3个元素(下标2):输出“艾草香” echo $xiang_list[2]; // 示例2:关联数组(自定义下标,比如用“名称-价格”对应) // 存熏香价格,下标是香品名称,值是价格 $xiang_price = array( '檀香' => 99, '沉香' => 199, '艾草香' => 29 ); // 取“沉香”的价格:输出199 echo $xiang_price['沉香'];
2. 最常用:短数组语法([])(PHP5.4 + 推荐)
PHP5.4 之后简化了写法,把array()换成[],更简洁,现在开发基本都用这个。
// 索引数组(和上面array()效果完全一样) $xiang_list = ['檀香', '沉香', '艾草香', '合香']; echo $xiang_list[1]; // 输出“沉香” // 关联数组(自定义下标) $xiang_info = [ '名称' => '线香', '材质' => '天然檀香木', '价格' => 89, '库存' => 1000 ]; // 取“材质”:输出“天然檀香木” echo $xiang_info['材质'];
3. 特殊:动态添加元素(先定义空数组,再填内容)
适合不确定要存多少数据的场景(比如从数据库批量读取香品信息)
// 第一步:定义空数组 $xiang_collection = []; // 第二步:动态添加元素(索引数组) $xiang_collection[] = '藏香'; // 下标自动变成0 $xiang_collection[] = '桂花熏香'; // 下标自动变成1 // 第二步:动态添加元素(关联数组) $xiang_collection['茉莉香'] = 39; // 自定义下标“茉莉香”,值39 // 输出数组所有内容:方便调试(新手必用) var_dump($xiang_collection); // 输出结果: // array(3) { [0]=> string(6) "藏香" [1]=> string(12) "桂花熏香" ["茉莉香"]=> int(39) }
三、数组的 2 大核心类型(必分清)
定义数组时,主要分两种类型,用法场景不同:
| 类型 | 特点 | 适用场景 |
| 索引数组 | 下标是数字(默认 0 开始) | 存 “按顺序排列” 的数据(比如香品列表) |
| 关联数组 | 下标是自定义字符串 | 存 “键值对应” 的数据(比如香品属性:名称、价格、库存) |
小拓展:多维数组(数组里套数组)
如果想存更复杂的信息(比如每个香品的完整信息),可以用 “数组里套数组”:
// 二维数组:存多个香品的完整信息 $xiang_all = [ [ '名称' => '檀香线香', '价格' => 99, '规格' => '100支/盒' ], [ '名称' => '艾草盘香', '价格' => 29, '规格' => '40盘/盒' ] ]; // 取第二个香品的规格:输出“40盘/盒” echo $xiang_all[1]['规格'];
四、新手避坑指南
- 下标从 0 开始!比如
['A','B','C'],A 是 0,B 是 1,C 是 2,别记错; - 关联数组的下标(键名)要用引号包起来!比如
['沉香'=>199],别写成[沉香=>199](没引号会被当成常量,容易报错); - 数组末尾的逗号可以留!比如
['檀香', '沉香',],PHP 会自动忽略,不影响运行,方便后续添加元素; - 调试数组用
var_dump()或print_r()!直接echo数组会输出 “Array”,看不到具体内容,用这两个函数能清晰看到数组里的所有元素。
五、实用小例子(贴近开发场景)
// 场景:判断数组里是否包含某类熏香 $xiang_list = ['檀香', '沉香', '艾草香']; // in_array():判断元素是否在数组里 if (in_array('沉香', $xiang_list)) { echo '数组里有沉香,库存充足'; } else { echo '暂时没有沉香,可预约'; } // 输出:数组里有沉香,库存充足
总结
- PHP 数组的核心是 “批量存数据”,定义主要用
[](推荐)或array(),前者更简洁; - 索引数组下标是数字(默认 0 开始),关联数组下标是自定义字符串,按需选择;
- 新手调试数组优先用
var_dump(),能直观看到数组的所有元素和类型; - 动态添加元素用
$数组名[] = 内容(索引)或$数组名['键名'] = 内容(关联)。
这些定义方法覆盖了 90% 的日常开发场景,比如存香品列表、用户提交的多组数据、后台配置信息,多写 2 个例子(比如存 5 个香道教程名称),很快就能熟练。