Я создаю сайт электронной коммерции и пытаюсь получить список самых продаваемых продуктов.
В следующем примере показан массив идентификаторов продуктов из продаж и выводятся наиболее продаваемые продукты в виде'product id' x 'number of sales'
<?php
$product_ids = [58,58,68,39,4,118,14,54,39,118,58];
$top_selling_products = "";
$product_sales = array_count_values($product_ids);
arsort($product_sales);
$i = 0;
foreach($product_sales as $sales){
$i++;
$product_id = array_search($sales,$product_sales);
$top_selling_products .= $product_id.' x '.$sales.'<br />';
if($i == 5){break;}
}
echo $top_selling_products;
?>
Однако, это не совсем то, что я хочу, в настоящее время это выводит следующее:
58 x 3
118 x 2
118 x 2
54 x 1
54 x 1
Где это должно быть:
58 x 3
118 x 2
39 x 2
54 x 1
14 x 1
Он получает последний элемент в массиве с тем же индексом, поэтому, когда есть два или более товара с одинаковым объемом продаж, он не собирает их.
Каков наилучший способполучить все уникальные идентификаторы.Любая помощь или помощь с этим будет принята с благодарностью.