使用方括号语法新建/修改
可以通过显式设置值来更改现有数组。
这是通过在方括号内指定键名并为数组分配值来完成的。也可以省略键名。在这种情况下,变量名称由空方括号([])括起来。
$arr[key] = value;
$arr[] = value;
// key 可以是 int 或 string
// value 可以是任意类型的值
如果$arr不存在,或者设置为空或假,则会创建它。这是创建数组的另一种方法。$如果arr已经包含值(例如来自请求变量的字符串),则保留该值,并且不建议使用该值,因为[]实际上表示字符串访问运算符。初始化变量的最佳方法是直接为变量分配值。
注:如果将空索引运算符应用于字符串,则PHP7.1.0或更高版本将抛出致命错误。以前,字符串被默默地转换为数组。
注意:PHP8.1.0或更高版本不建议使用假值创建新数组。但是,可以使用空变量或未定义的变量创建新数组。
若要更改值,请用关键字名称为单元格指定新值。要删除键和值对,请调用unset()函数。
<?php $arr = array(5 => 1, 12 => 2); $arr[] = 56; // 这与 $arr[13] = 56 相同; // 在脚本的这一点上 $arr["x"] = 42; // 添加一个新元素 // 键名使用 "x" unset($arr[5]); // 从数组中删除元素 unset($arr); // 删除整个数组 ?>
注意:
如前所述,如果指定了方括号但未指定键名,则将获得当前最大的整型索引值,新的键名为该值加1的值(但最小值为0)。如果当前没有int索引,则密钥名为0。
请注意,此处使用的最大整数密钥名不必存在于当前数组中。只是阵列必须在上次重新索引之后才存在于阵列中。例如:
<?php // 创建一个简单的数组 $array = array(1, 2, 3, 4, 5); print_r($array); // 现在删除其中的所有元素,但保持数组本身不变: foreach ($array as $i => $value) { unset($array[$i]); } print_r($array); // 添加一个单元(注意新的键名是 5,而不是你可能以为的 0) $array[] = 6; print_r($array); // 重新索引: $array = array_values($array); $array[] = 7; print_r($array); ?>
输出以上例程结果如下:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
)
Array
(
[5] => 6
)
Array
(
[0] => 6
[1] => 7
)