0
$data = explode("\n", trim($_GET['names']));
while($i < count($data)) {
  if(!in_array($data[$i], $unique_names)){
    $unique_names[] = $names[$i];
   }
   $i = $i + 1;
 }

我正在尝试使用此 php 代码仅接受来自 textarea 的唯一结果。它不起作用,因为每个字符串都有一个额外的空格,除了最后一个。

即“杰夫”“弗雷德”“比尔”“杰夫”

所以杰夫将被添加两次。

我的问题是:我如何摆脱那个空间?我试过修剪,它不会按预期执行。

4

3 回答 3

0

用于trim(string)从开头和结尾删除空格。http://php.net/manual/en/function.trim.php

于 2013-02-08T00:57:21.503 回答
0

首先,您不需要手动查找唯一值,您可以使用array_unique(). 其次,trim()不适用于数组。

尝试:

$raw_names = explode("\n", $_GET['names']);
$trimmed_names = array_map('trim', $raw_names);
$unique_names = array_unique($trimmed_names);
于 2013-02-08T01:03:57.457 回答
-1

灵感来自kba

$data = explode("\n", trim($_GET['names']));
foreach ($data as &$e) {
    $e = trim($e);
}
$unique_names = array_unique($data);
于 2013-02-08T01:03:15.697 回答