在修剪空格时从数组中删除(不区分大小写)重复项

时间:2013-12-05 20:28:28

标签: php

这是与Best solution to remove duplicate values from case-insensitive array

非常相似的问题

在接受的答案中,第一条评论提到使用trim()来删除空格。

我想这样做,但我无法弄清楚修剪应该去哪里

任何人都可以帮助我吗?

$r = array_intersect_key($input, array_unique(array_map('strtolower', $input)));

2 个答案:

答案 0 :(得分:0)

就像这样:

$input = array('test ', 'test', ' test2', 'test2');
$r = array_intersect_key($input, array_unique(array_map('strtolower', array_map('trim',$input))));

Fiddle

如果您还需要修剪结果,您也应该在结果上应用数组映射

$r = array_map('trim',array_intersect_key($input, array_unique(array_map('strtolower', array_map('trim',$input)))));

答案 1 :(得分:0)

你可以使用像array_walk这样的方法,以便在删除重复项之前修剪数组的每个项目,例如:

function trimming(&$val, $key) {
    $val = trim ($val);
}

$data = array("  vvv  ","ccc   ");
array_walk($data, 'trimming');
print_r($data);

然后您可以使用您的代码删除重复项。