2016-02-12 121 views
-8

我遇到了array_unique问题,其中重复值未被删除。array_unique不删除重复项

<?php 
    $mfgName = 'blah'; 
    $prodModel = '178.211'; 
    $name ='178.211 remove this number'; 

    $input = array($mfgName, $prodModel, $name); 
    $st =array_unique($input); 
    $str= implode(' ', $st); 
    echo $str; 
?> 

输出应该是:

blah 178.211 remove this number 

,但我得到:

blah 178.211 178.211 remove this number 
+5

'胡说!= 178.211!= 178.211删除此number' –

+1

我没有在这里看到的问题吗?这似乎是一切应该如何工作。听起来你需要编写你自己的'unique'函数来检查每个字符串中每个字符串的索引。 – JosephGarrone

+0

请检查这个[链接](http://php.net/manual/en/function.array-unique.php)知道array_unique是如何工作的! –

回答

1

只要改变

$input = array($mfgName, $prodModel, $name); 

$input = array_merge(array($mfgName, $prodModel), explode(" ",$name)); 

这将字符串$name分成一个数组,并且array_unique按预期工作。

+0

谢谢它的作品 – naf

0

您可以在$ name上使用explode来获取单个单词并构造一个包含$ prodModel和$ name的单词的数组,然后使用$ array_unique来摆脱重复的单词。

$nameWords = explode(' ', $name); 
array_push($nameWords, $prodModel); 
$uniqueWords = array_unique($nameWords); 
$result = implode(' ', $uniqueWords);