自己实现array_unique()

时间:2016-08-03 12:46:28

标签: php arrays

我有这个数组:

$number = array("a", "b", "b", "c", "a", "b", "c", "b", "c");

现在我想获得所有独特的价值观。意味着结果应该是:

$result = array("a", "b", "c");

现在我知道这可以通过array_unique()轻松解决。但我想使用for循环array_unique()unset()编写我自己的array_values()实现。

2 个答案:

答案 0 :(得分:0)

使用array_unique()

<?php
    $number=array("a","b","b","c","a","b","c","b","c");
    $unique_array=array_unique($number);
    print_r($unique_array);
?>

//第二个可能性

<?php
    $number=array("a","b","b","c","a","b","c","b","c");
    $unique_array=[];
    foreach($number as $val)
    {
        $unique_array[$val]=$val;
    }
    print_r(array_values($unique_array));
?>

// for,unset,array_value

的第三个可能性
<?php
$number=array("a","b","b","c","a","b","c","b","c");
$count=count($number);
for($i=0;$i<$count;$i++)
{
    if($i<count($number))
    {
        for($j=$i+1;$j<$count;$j++)
        {
            if($number[$i]==$number[$j])
            {
                unset($number[$j]);
             }
        }

    }
}
$number=array_values($number);
print_r($number);

&GT;

预期结果是

Array ( [0] => a [1] => b [2] => c ) 

答案 1 :(得分:0)

这样的事可能吗?在这里,我们循环遍历并从一个Edit开始从位置0开始,另一个从1开始。我们将for位置与数组中的所有其他位置进行比较,如果它找到两个相同,则它将删除第二个。

$i