PHP, сортировка массива и подсчет "максимальных" значений в массиве
Доброго времени суток, дня и ночи.
Имеется массив вида:
$array = [ 1 => [ 'count' => 15, 'price' => 974190, ], 2 => [ 'count' => 13, 'price' => 312561, ], 3 => [ 'count' => 55, 'price' => 12512, ], 4 => [ 'count' => 14, 'price' => 3125, ] ];
Мне необходимо выяснить в каких вложенных массивах самое большое значение price и/или count в порядке убывания. Возможно создать из этого массива новый, в котором ключи будут являтся позицией массива по самым высоким значениям.
То есть, чтобы после сортировки по count массив был приблизительно такого вида:
$array = [ 1 => [ 'count' => 55, 'price' => 12512, ], 2 => [ 'count' => 15, 'price' => 974190, ], 3 => [ 'count' => 14, 'price' => 3125, ] 4 => [ 'count' => 13, 'price' => 312561, ], ];
Очень долго гуглил и сам разобраться не смог.
Заранее благодарю за помощь.
Ответы (1 шт):
Автор решения: c0ol
→ Ссылка
<?php
$array = [
1 => [
'count' => 15,
'price' => 974190,
],
2 => [
'count' => 13,
'price' => 312561,
],
3 => [
'count' => 55,
'price' => 12512,
],
4 => [
'count' => 14,
'price' => 3125,
]
];
// Сортировка массива (по убыванию), в соответствии со значением
arsort($array);
// Не меняя порядок следования элементов просто поменять ключи
print_r(array_values($array));
?>
Результат:
Array
(
[0] => Array
(
[count] => 55
[price] => 12512
)
[1] => Array
(
[count] => 15
[price] => 974190
)
[2] => Array
(
[count] => 14
[price] => 3125
)
[3] => Array
(
[count] => 13
[price] => 312561
)
)