PHP数组是一种复合数据类型,可以存储多个不同类型的值,在业务开发中应用非常广泛,掌握其定义和初始化规则是PHP开发的基础。

PHP数组的核心定义方式
1. 使用array()结构定义
这是PHP传统的数组定义方式,兼容所有PHP版本,语法格式为array(元素1, 元素2, ...),支持索引数组和关联数组两种形式。
索引数组示例:
<?php
// 索引数组,键名默认从0开始递增
$indexArr = array('apple', 'banana', 'orange');
echo $indexArr[0]; // 输出 apple
?>
关联数组示例:
<?php
// 关联数组,自定义键名
$assocArr = array('name' => '张三', 'age' => 25, 'city' => '北京');
echo $assocArr['name']; // 输出 张三
?>
2. 使用短数组语法[]定义
PHP 5.4及以上版本支持短数组语法,用方括号代替array(),写法更简洁,是目前推荐的使用方式。
<?php // 短语法定义索引数组 $shortIndexArr = ['php', 'java', 'python']; // 短语法定义关联数组 $shortAssocArr = ['id' => 1, 'title' => 'PHP教程', 'price' => 99]; ?>
3. 动态赋值定义
可以先声明一个空数组,再通过键名动态添加元素,这种方式适合需要逐步填充数组的场景。
<?php $动态数组 = []; $动态数组[] = '第一个元素'; // 自动分配索引0 $动态数组[2] = '第三个元素'; // 手动指定索引2,索引1会留空 $动态数组['key'] = '关联元素'; // 添加关联元素 print_r($动态数组); ?>
PHP数组的初始化规则
1. 空数组初始化
如果需要初始化一个没有元素的空数组,两种方式都支持:
<?php $空数组1 = array(); $空数组2 = []; ?>
2. 索引数组初始化规则
索引数组的键名默认从0开始自动递增,如果手动指定了某个索引,后续未指定索引的元素会从最大的手动索引值加1开始分配。
<?php $索引规则数组 = [10 => 'a', 'b', 'c']; // 键名依次为10、11、12 echo $索引规则数组[11]; // 输出 b ?>
3. 关联数组初始化规则
关联数组的键名需要手动指定,键名可以是整数或者字符串,字符串键名如果符合整数格式会被转换为整数类型。
<?php $关联规则数组 = ['1' => '值1', 'name' => '值2']; // 键名'1'会被转换为整数1 echo $关联规则数组[1]; // 输出 值1 ?>
4. 多维数组初始化规则
多维数组就是数组的元素也是数组,初始化时嵌套对应的数组结构即可,支持索引和关联混合嵌套。
<?php
$多维数组 = [
'user1' => ['name' => '李四', 'age' => 22],
'user2' => ['name' => '王五', 'age' => 24]
];
echo $多维数组['user1']['name']; // 输出 李四
?>
常见注意事项
- 数组键名不区分变量大小写,但是字符串键名区分大小写,比如
key和Key是两个不同的键名。 - 同一个数组中如果重复定义相同的键名,后面的值会覆盖前面的值。
- 初始化数组时如果元素之间有逗号,最后一个元素后面的逗号可以省略,不影响语法正确性。
PHP数组的灵活性很强,实际开发中可以根据场景选择合适的定义方式,短数组语法在PHP 5.4+环境下优先使用,能让代码更简洁易读。