这是与Best solution to remove duplicate values from case-insensitive array
非常相似的问题在接受的答案中,第一条评论提到使用trim()来删除空格。
我想这样做,但我无法弄清楚修剪应该去哪里
任何人都可以帮助我吗?
$r = array_intersect_key($input, array_unique(array_map('strtolower', $input)));
答案 0 :(得分:0)
就像这样:
$input = array('test ', 'test', ' test2', 'test2');
$r = array_intersect_key($input, array_unique(array_map('strtolower', array_map('trim',$input))));
如果您还需要修剪结果,您也应该在结果上应用数组映射
$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);
然后您可以使用您的代码删除重复项。