Прежде всего, это не повторяющийся вопрос, поскольку я пробовал большую часть ответа стека.
В моем массиве около 138886
записей.
записи похожи на
[1] => Array
(
[country] => US
[state] => Albama
[city] => Brest
[postcode] => 225001-225003
[shipping_info] => Delivery Available
[is_zip_range] => 1
[zip_from] => 225001
[zip_to] => 225003
)
[2] => Array
(
[country] => BY
[state] => Brest
[city] => Brest
[postcode] => 225001-225003
[shipping_info] => Delivery Available
[is_zip_range] => 1
[zip_from] => 225001
[zip_to] => 225003
)
Я хочу, чтобы все записи были уникальными из значения postcode
. Я пробовал какой-либо метод:
Метод 1
$temp = array_unique(array_column($data, 'postcode'));
$filteredData = array_intersect_key($data, $temp);
но он все еще дает дублирующее значение.
Метод 2
$filteredData = array_map("unserialize", array_unique(array_map("serialize", $data)));
это не сработает
Метод 3
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
$details = unique_multidim_array($array,'postcode');
Это работает, но слишком медленно, занимает около 2/3 минут.
дайте мне знать любой другой метод, который я могу использовать для уникального массива.
помощь будет оценена