array_unique不删除重复项

时间:2016-02-12 11:06:28

标签: php

我遇到了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

2 个答案:

答案 0 :(得分:1)

只需更改

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

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

这会将字符串$name拆分为数组,并且array_unique按预期工作。

答案 1 :(得分:0)

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

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