以下脚本将基于单个 key从数组中删除重复项。我通过以下参考找到了它。参考:从数组中删除重复项(数组 uni 键)
我的问题是$initial_data数组可能包含具有相同[Post_Date]值但不同[Item_Title]值的项目。
有没有办法修改代码,使其仅在[Post_Date]和[Item_Title]值相同的情况下删除重复项?
// Remove Duplicates based on 'Post_Date'
$_data = array();
foreach ($initial_data as $v) {
if (isset($_data[$v['Post_Date']])) {
continue;
}
$_data[$v['Post_Date']] = $v;
}
// if you need a zero-based array, otherwise work with $_data
$unique_results = array_values($_data);
下面是显示 4 个字段的数组的简化输出。原始数组包含 16 个字段。
$initial_data:原始数据数组。[ Post_Date]值相同,但[Item_Title]值不同。
Array
(
[0] => Array
(
[id] => 22000
[Category] => vehicles
[Post_Date] => 1356373690
[Item_Title] => Car Painting
)
[1] => Array
(
[id] => 22102
[Category] => vehicles
[Post_Date] => 1356373690
[Item_Title] => Car Repair
)
...
)
$_data:脚本中的 $_data 数组
Array
(
[1356373690] => Array
(
[id] => 22000
[Category] => vehicles
[Post_Date] => 1356373690
[Item_Title] => Car Painting
)
[1356373690] => Array
(
[id] => 22102
[Category] => vehicles
[Post_Date] => 1356373690
[Item_Title] => Car Repair
)
...
)
$unique_results:最终的唯一结果数组。如您所见,脚本仅根据[Post_Date]删除了重复的数组项,但我还需要它来评估[Item_Title]值是否不同或相同,以便它不会将此数组项视为重复项。
Array
(
[0] => Array
(
[id] => 22000
[Category] => vehicles
[Post_Date] => 1356373690
[Item_Title] => Car Painting
)
...
)