如何忽略数组中的重复项

时间:2016-11-28 21:15:20

标签: php

我希望我的程序忽略重复项, 我使用过array_unique,但我仍然看到重复 我不知道自己做错了什么。 所以我从文本区域获取电话号码然后将它们发送到我的PHP 任何帮助将不胜感激 这是我尝试过的。

<script type="text/javascript">
    // click and drop code 
        $(document).ready(function(){
    $("ul li").click(function(event) {
  var eid = $(this).attr('id');
  $(".text").val($(".text").val() +"\n" + eid);

});
        });
//parents_idcelldrag
    </script>


<form action="index.php" method="post">
 <textarea class="text" name = "cellnumbers" readonly></textarea>
</form>

    <?php 
// I get this
$cellnumbers=(isset($_POST['cellnumbers']))? trim($_POST['cellnumbers']): '';

    $ids = explode("\n", $cellnumbers);
    $cleaned = array_unique($ids);
    foreach($cleaned as $key){
    $final_cell .= $key.',';
    }

    $final_cell= substr($final_cell,0,-1);
    echo $final_cell;
    ?>

2 个答案:

答案 0 :(得分:1)

如果$ids具有尾随空格,则可能是这种情况。尝试在array_unique之前修剪值:

$ids = explode("\n", $cellnumbers);
$ids = array_map('trim', $ids);
$cleaned = array_unique($ids);

答案 1 :(得分:1)

一个例子在这里可以帮助你实现你想要的另一种方式:

<?php

$ids = explode("\n", $cellnumbers);

// create an array with the values as the keys and their frequencies as the value
$values_count = array_count_values($ids);
$cleaned = array_keys($values_count);

// glue together the values
$final_cell = implode(',', $cleaned);

// echo the cleaned result
echo $final_cell;
?>