如何删除重复的数字?

时间:2011-06-22 11:20:12

标签: php

HTML

<form method="post">
    <input type="text" name="values" value="1,2,1,3,4,2,2,5" />
    <button type="submit">Submit</button>
</form>

PHP

if(isset($_POST['values']))
{
    $values = $_POST['values']); //remove duplicate numbers

    echo $values;
}

输出

1,2,3,4,5

那怎么办?首先排序数字?然后通过循环运行它们?

6 个答案:

答案 0 :(得分:4)

你的直觉是正确的:你要排序然后循环。

但PHP已经有内置功能,可以为您完成所有工作。像这样:

array_unique(explode(',', $_POST['values']));

如果您需要再次使用字符串,请使用implode:

implode(',', array_unique(explode(',', $_POST['values'])));

答案 1 :(得分:1)

你想要的是array_unique。用逗号分解$值,得到数组,然后调用array_unique。

<?php

$values = explode(',', $_POST['values']);
var_dump(array_unique($values));

答案 2 :(得分:1)

<?php
$values = '6,5,4,1,2,1,3,4,2,2,5';
$values = explode(',', $values);
$values = array_unique($values);
sort($values);
$values = implode(',', $values);
// $values = 1,2,3,4,5,6

答案 3 :(得分:1)

按照步骤:

  • 使用,作为分隔符的第一个explode字符串数组。
  • 使用array_unique
  • 删除重复的值
  • implode将数组返回到字符串

示例:

$values = "1,2,1,3,4,2,2,5";
echo implode( ',' , array_unique( explode( ',', $values) ) );

Demo

答案 4 :(得分:0)

$array=array_unique(explode(',',$_POST['values']));    
$values=implode(',',$array);

答案 5 :(得分:0)

将您的代码更改为:

if(isset($_POST['values']))
{
    $values = $_POST['values']); 
    //remove duplicate numbers
    $values = explode(',', $values);
    $values = array_unique($values);
    $values = implode(',', $values);

    echo $values;
}