(本文为个人学习过程的备忘录(踩坑记录)。内容持续更新)
为便于理解,我们定义如下 Array 对象:
$arr = ['a', 'b', 'c', 'd', 'e', 'f'];
快速输出数组元素
当然可以用循环,但此处希望使用一行代码快速输出。 如果使用echo $arr ,会得到如下结果:
Array
正确方法是使用print_r() 函数对数组进行输出。输出语句为print_r($arr) ,结果如下:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )
移除下标为 i 的元素(unset 法)
unset($arr[$i]);
这样做存在一个的问题:下标不变。 即,如果执行 unset($arr[2]) ,$arr 内容变为['a', 'b', 'd', 'e', 'f'] ,但其中d 元素的下标仍然为3,而不是2. 实验表明,此时$arr 中的内容实际为['a', 'b', NULL, 'd', 'e', 'f']
移除下标为 i 的元素(array splice 法)
array_splice($arr, $i, 1);
这样做可以做到移除指定元素,并且后面的元素下标相应减小。
该函数的参数表:
- 第一个参数:要操作的数组
- 第二个参数:要操作的下标
- 第三个参数:要删除的元素个数。即,如果第三个参数为2,则会从 $i 开始删除2个元素,并将后面的元素下标全减去2.
php manual 上对于该函数的原型如下:
array_splice(
array &$array,
int $offset,
?int $length = null,
mixed $replacement = []
): array
官方解释为:
Removes the elements designated by offset and length from the array array, and replaces them with the elements of the replacement array, if supplied.
|