PHP Array 操作

(本文为个人学习过程的备忘录(踩坑记录)。内容持续更新)

为便于理解,我们定义如下 Array 对象:

// index
//       0    1    2    3    4    5
$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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值