前言
在实际的开发中,对PHP数组元素的操作是非常频繁的,这也是PHP很重要的基础,其实在实际的开发中无论是PHP还是其他编程语言,在实际的项目中,大多都是对字符串和数组的操作,几乎在所有的编程语言中,数组作为最基础最简单的数据结构,它是我们操作数据的载体,同时它也是其他数据结构的基础。
在真正的业务开发中,curd增删查改是最多的操作,平时我们所说的curd大多都是相对于数据库来说的,但是从语言层面来说它的本质还是对数组的操作,因为在开发中,我们对数据库中数据的操作大多是调用数据库相关的API来对数据进行操作,比如PHP对mysql的操作,使用的是mysql的扩展驱动,扩展里面根据mysql的标准封装了一系列数据库操作的接口。。。扯远了,废话不多说,接下来我们通过实例来了解数组元素的增删操作
向数组中添加元素
数组创建完成后用户还可以继续添加和删除元素,从而满足实际的编程需要。
数组是数组元素的集合,向数组中添加元素,就像往一个盒子里面放东西,这就涉及到“先进先出”或“后进先出”的问题。
先进先出就是队列,就像我们排队买火车票,先进入购买窗口的区域,购买完成后先从旁边的出口出去。
后进先出就是栈,类似一个桶,后者说像一个弹夹,给弹夹上子弹,最后压上的那颗子弹是最先打出去的。
PHP对数组添加元素的处理使用push()、pop()、shift()、unshiftI()函数来实现,可以实现先进先出,也可以实现后进先出。下面我们来看代码:
<?php
$array = array('张三','李四','王五');
array_unshift($array, '李白','鲁班');
echo '<pre>';
print_r($array);
执行结果:
数组$array原来只有三个元素,array_unshift()向数组$array的头部添加了数组元素‘李白’和‘鲁班’。最后将数组输出,从结果可以看出添加元素的位置
array_unshift()函数语法格式如下:
array_unshift(目标数组,[添加数组1,...,添加数组n])
上面是从头部添加元素,接着我们来看看从数组尾部添加元素,实现先进先出:
<?php
array_push($array,'刘备','关羽','张飞');
echo '<pre>';
print_r($array);
执行结果:
在上例的基础上使用array_push()向数组尾部添加‘刘备’、‘关羽’、‘张飞’三个元素,最后通过输出的结果可以看出元素添加的位置。
array_push()语法格式:
array_push(目标数组,[添加数组1,...,添加数组n])
push翻译过来就是‘推‘的意思,这个过程就像排队的时候把人从队伍后面向前推。
从数组中删除元素
从数组中删除数组就是添加数组的逆过程,PHP使用array_shift()和array_pop()函数分别从数组的头部和尾部删除数组元素。接着我们通过例子来了解他们的用法:
<?php
$delarr1 = array_shift($array);
echo '<pre>';
print_r($delarr1);
echo '<pre>';
print_r($array);
执行结果:
array_shift()从$array的头部删除了第一个数组元素,并且直接返回所删除的元素值,且赋值给变量$delarr1,通过输出的结果可看出删除的元素和数组剩余的元素。
array_shift()函数,仅删除目标数组的头一个数组元素,语法格式如下:
array_shift(目标数组)
上面的例子是数字索引数组,如果是带键值的联合索引数组,他的效果相同,返回所删除的元素。接着我们再来了解如何删除数组的最后一个元素。
<?php
$delarr2 = array_pop($array);
echo '<pre>';
print_r($delarr2);
echo '<pre>';
print_r($array);
执行结果:
从执行结果可以看出,在原来数组$array的基础上,使用array_pop()从数组尾部删除了最后一个元素,并且直接把删除的元素的值返回,且赋值给变量$delarr2。
array_pop()语法格式如下:
array_pop(目标数组)
就这样,使用push()、pop()、shift()、unshiftI()函数,可实现数组的先进先出和实现后进先出