在PHP中,有很多解决从多维数组中删除重复项的方法,但我还没有找到一个可以检测重复项(无论大小写)并保留它们在输出中的方法。
// Sample data
$arr = [
['id' => 1, 'term' => 'Hello'],
['id' => 1, 'term' => 'hello'],
['id' => 2, 'term' => 'Hello'],
['id' => 2, 'term' => 'hello']
];
// Desired output
$arr = [
['id' => 1, 'term' => 'Hello'],
['id' => 2, 'term' => 'Hello']
];
// Ex 1. case sensitive, preserves case
$serialized = array_map('serialize', $arr);
$unique = array_unique($serialized);
$unique = array_intersect_key($arr, $unique);
// Ex 2. case insensitive, doesn't preserve case
$unique = array_map('unserialize',
array_unique(
array_map('strtolower',
array_map('serialize',$arr)
)
)
);