如何从PHP数组中删除带有特殊字符的重复值

时间:2018-11-02 12:09:55

标签: php arrays wordpress

这里有这个数组:

Decodable

此处,四个值相同。所以我只想保留一个。 我确实尝试使用 $myArray = array(5) { [0]=> string(62) " läs våra leveransvillkor/reservationer " [1]=> string(61) " läs våra leveransvillkor/reservationer " [2]=> string(60) " läs våra leveransvillkor/reservationer" [3]=> string(107) "om skorstenen bryter nock, ränndal, bjälke, el, vent etc tillkommer kostnad för vinklar eller avväxling" [4]=> string(59) "läs våra leveransvillkor/reservationer" } ,甚至我也尝试这样做:

array_unique

但是我没有成功删除重复项。我想这是因为字符特殊。

2 个答案:

答案 0 :(得分:2)

您的var_dump暴露出您的字符串中包含不可打印的字符。

您将需要通过删除不可打印的字符来准备数据。如果您使用的是UTF-8,则应该这样做...

$myArray = preg_replace('/[\x00-\x1F\x7F]/u', '', $myArray);

然后您将可以使用:

$myArray = array_unique($myArray);

或者当然,将它们组合成一行:

$myArray = array_unique(preg_replace('/[\x00-\x1F\x7F]/u', '', $myArray));

如果您说只有前导空格和尾随空格要擦掉,那么就可以了。

代码:(Demo

$myArray = [
"  läs våra leveransvillkor/reservationer ", 
" läs våra leveransvillkor/reservationer ", 
" läs våra leveransvillkor/reservationer",
"om skorstenen bryter nock, ränndal, bjälke, el, vent etc tillkommer kostnad för vinklar eller avväxling", 
"läs våra leveransvillkor/reservationer"
];

var_export(array_unique(array_map('trim', $myArray)));

答案 1 :(得分:-2)

它与 array_unique 一起使用     

 $myArray =  array( 
'0'=> "läs våra leveransvillkor/reservationer",
'1'=>  "läs våra leveransvillkor/reservationer",
'2'=> "läs våra leveransvillkor/reservationer",
'3'=>  "om skorstenen bryter nock, ränndal, bjälke, el, vent etc tillkommer kostnad för vinklar eller avväxling" ,
'4'=>  "läs våra leveransvillkor/reservationer",
);


$result = array_unique($myArray);
print_r($result);

DEMO