从数组中取出重复值

时间:2011-12-12 03:09:25

标签: php arrays unique

我有一个文本字段,用户可以在每行50行最多输入一个包含15个数字的字符串

我还需要过滤掉任何重复的值。到目前为止我有这个代码

if(empty($_POST['text_field'])){$message = 'Please input values for the text_field.';}else{
    $text_field = $_POST['text_field'] ;
    $lines_unfiltered = array_slice(explode("\n", $text_field), 0, 50);
    $lines = array_unique($lines_unfiltered);
    print_r($lines);
exit;

但是当我使用这些数字运行它时

5645646546545
2564545454544
5645646546545

它给了我所有三行,并没有按照它应该

过滤掉副本
Array([0]=> 5645646546545 [1]=> 2564545454544 [2]=> 5645646546545)

任何想法?

1 个答案:

答案 0 :(得分:1)

因此,正如评论所指出的那样,你需要删除每个字符串上的\n

这可以通过以下方式完成:

trim($text_field);

然后你应该留下一个格式正确的字符串,可以添加到数组中。

或者你可以做其他Jon建议的单线:

$lines = array_unique(array_map('trim', array_slice(explode("\n", $text_field), 0, 50)));

我在所有内容中添加了array_unique函数,以确保结果只是唯一值。