php 删除数组元素方法
在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法.
看一完整删除重复数组实例,代码如下:
<?php //删除数组中的一个元素 function array_remove_value(&$arr, $var) { foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value($arr[$key], $var); } else { $value = trim($value); if ($value == $var) { unset($arr[$key]); } else { $arr[$key] = $value; } } } }
$a是一个数组:
<?php $a = array( "red", "green", "blue", "yellow" ); count($a); //得到4 unset($a[1]); //删除第二个元素 count($a); //得到3 echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue, echo $a[1]; //无值
也就是说在删除数组中的元素后, 数组中的元素个数(用count() 得到) 变了, 但数组下标却没有重新排列, 还必须用删除数组前的key来操作相应的值 . 后来我采用另一种方法, 其实根本就不叫"方法", 是用php4现成的函数array_splice() , 代码如下 :
<?php $a = array( "red", "green", "blue", "yellow" ); count($a); //得到4 array_splice($a, 1, 1); //删除第二个元素 count($a); //得到3 echo $a[2]; //得到yellow echo $a[1]; //得到blue
方法二, 删除数组中重复元素的函数, 代码如下 :
function delmember(&$array, $id) { $size = count($array); for ($i = 0; $i < $size - $id - 1; $i++) { $array[$id + $i] = $array[$id + $i + 1]; } unset($array[$size - 1]); }
本文地址:http://www.phprm.com/shuzu/fs5703.html
转载随意,但请附上文章地址:-)