Задать вопрос
miker059
@miker059
Коротко не получится

Как сохранить числовые ключи в многомерном массиве после сортировки его array_multisort?

Привет, Коллеги!
Помогите с вопросиком, а он такой:

Есть массив, примерно такого содержания:
$products = array(
  25465 => array(
                     'name' => 'blablabla',
                     'rat' => 77
                    ),
  12545 => array(
                     'name' => 'blabla',
                     'rat' => 55
                    ),


пытаюсь его отсортировать таким образом:
$ar_sort = array_map( function($n){
		return $n['rat'];
	}, 
	$products
     );
     array_multisort($ar_sort, SORT_DESC, SORT_STRING, $products);


ключи это ИД продуктов и их уже не поменять или убрать уже ни как,
соответственно при сортировке все эти ключи, так как они числовые, затираются, вопрос как сделать так что бы они оставались. Еще раз повторюсь, с массивом ничего не сделать

Забыл упамянуть, сортировать надо по полю rat внутри массива
  • Вопрос задан
  • 600 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
miker059
@miker059 Автор вопроса
Коротко не получится
Решил вопрос таким вот образом:
uasort($products, function($a, $b){
	$a = $a['rat'];
	$b = $b['rat'];
	if ($a == $b) {
		return 0;
	}
	return ($a > $b) ? -1 : 1;
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы