首页 > php数组 > php 删除数组元素方法

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

转载随意,但请附上文章地址:-)

标签:php删除数组 php删除元素

相关文章

发表留言