对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作。
(1)使用 array_pop 删除数组的最后一个元素,例如:
$user=array('apple','banana','orange');
$result=array_pop($user);
print_r($result);
print_r($user);
结果将是:
orange
array('apple','banana')
(2)使用 array_shift 删除数组的第一个元素,例如:
查看代码打印
$user=array('apple','banana','orange');
$result=array_shift($user);
print_r($result);
print_r($user);
结果将是:
apple
array('banana','orange')
其实删除数组的第一个元素还可以使用 array_splice 这个函数,即:
$user=array_splice($user,1); //删除数组第一个元素,注意此时返回的是被删除后的新的数组
下面简单的对 array_pop 和 array_shift 做一下解释:
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL。
offset: 规定取出元素的开始位置。如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。
一、PHP取索引数组的第一个
取索引数组的第一个元素非常容易,下标写0即可,不多解释。
重点和大家分享PHP取关联数组第一个的方法。先放上我今天写的代码:
//
取默认第一个渠道名
$channel_arr = $
this
->get_from_channel();
//
所有渠道数组
$arr_num =
count($channel_arr);
$first_channel
= array_slice($channel_arr,
0
,-($arr_num-
1
));
//
取渠道数组第一个
$html[
'
from_channel
'
] = $first_channel[
0
];
<?
php
$a
=array(
0
=>
"
Dog
"
,
1
=>
"
Cat
"
,
2
=>
"
Horse
"
,
3
=>
"
Bird
"
);
print_r(array_slice($a,
1
,
2
));
Array ( [
0
] => Cat [
1
] =>
Horse )
还有array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值.
相对的array_pop() 函数删除数组中的最后一个元素.
几个函数用下来觉得array_search()比较实用
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回
false
代码如下 复制代码
$array
= array(
'
1
'
,
'
2
'
,
'
3
'
,
'
4
'
,
'
5
'
);
$del_value
=
3
;
unset($array[array_search($del_value , $array)]);
//
利用unset删除这个元素
print_r($array);
array(
'
1
'
,
'
2
'
,
'
4
'
,
'
5
'
);
PHP中删除数组中某个元素
在PHP中删除数组元素有以下几种方法:
要删除一个元素,用onset()
代码如下 复制代码
unset($array[
3
]);
unset($array[
'
foo
'
]);
要删除多个不连续的元素,也用unset()
代码如下 复制代码
unset($array[
3
] $array[
5
]);
unset($array[
'
foo
'
] $array[
'
bar
'
]);
要删除多个连续的元素,用array_splice()
代码如下 复制代码
array_splice($array $offset $length);
定义和用法
array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值。
注释:如果键是数字的,所有元素都将获得新的键,从
0
开始,并以
1
递增。(参见例子
2
)。
array_shift(array)
参数 描述
array 必需。规定输入的数组。
<?
php
$a
=array(
"
a
"
=>
"
Dog
"
,
"
b
"
=>
"
Cat
"
,
"
c
"
=>
"
Horse
"
);
echo array_shift($a);
print_r ($a);
Array ( [b]
=> Cat [c] =>
Horse )
带有数字键:
<?
php
$a
=array(
0
=>
"
Dog
"
,
1
=>
"
Cat
"
,
2
=>
"
Horse
"
);
echo array_shift($a);
print_r ($a);
Array ( [
0
] => Cat [
1
] => Horse )