作者:miedao1592_460 | 来源:互联网 | 2014-06-17 17:22
在php中删除数组元素与增加数组元素的方法有很多种,下面小编来给各位同学总结一些实用的与常用的数组元素增加删除实例。
增加数据元素有函数,array_push(),array_unshift()函数
一、在数组的末尾添加元素
1.array_push,使用代码如下:
- $stack = array("orange", "banana");
- array_push($stack, "apple", "raspberry");
- print_r($stack);
- ?>
输出:
- Array
- (
- [0] => orange
- [1] => banana
- [2] => apple
- [3] => raspberry
- )
2.$arr[],使用代码如下:
- $arr = array("orange", "banana");
- $arr[]='apple';
- print_r($arr);
- ?>
这两种的效果是一样的,注意:如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担。
二、在数组开头插入元素
1.array_unshift 使用代码如下:
- $queue = array("orange", "banana");
- array_unshift($queue, "apple", "raspberry");
- print_r($queue);
- ?>
输出
- Array
- (
- [0] => apple
- [1] => raspberry
- [2] => orange
- [3] => banana
- )
删除数组元素unset,或直接设置空,如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊,代码如下:
- $arr = array('a','b','c','d');
- unset($arr[1]);
- print_r($arr);
- ?>
- print_r($arr)
之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d ),那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice(),代码如下:
- $arr = array('a','b','c','d');
- array_splice($arr,1,1);
- print_r($arr);
- ?>
print_r($arr)之后,结果是Array ( [0] => a [1] => c [2] => d )
删除数组指定元素
如array_slice() 函数在数组中根据条件取出一段值,并返回.
array_slice(array,offset,length,preserve)
array:数组
offset:规定取出元素的开始位置,如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值,代码如下:
- $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)]);
- print_r($array);
- 输出
- array('1', '2', '4', '5');