@victorib_us

Как отсортировать многомерный массив?

Есть такой массив
Array
(
    [0] => Array
        (
            [name] => name_1
            [rate] => 1
        )

    [1] => Array
        (
            [name] => name_2
            [rate] => 2
        )
    [3] => Array
        (
            [name] => name_3
            [rate] => -3
        )

)

Как его отсортировать по ключу "rate" чтобы получить такой результат
Array
(
    [0] => Array
        (
            [name] => name_2
            [rate] => 2
        )

    [1] => Array
        (
            [name] => name_1
            [rate] =>1
        )
    [3] => Array
        (
            [name] => name_3
            [rate] => -3
        )

)
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
@romteh
Думаю как то так:
usort($arr, function ($a, $b)
{
    if ($a['rate'] == $b['rate']) {
        return 0;
    }
    return ($a['rate'] > $b['rate']) ? -1 : 1;
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
webtop
@webtop
Web developer
<?php
$arr = array(
	array(
		'name' => 'name_1',
		'rate' => 1
	),
	array(
		'name' => 'name_1',
		'rate' => 2
	),
	array(
		'name' => 'name_1',
		'rate' => -3
	),
);

uasort($arr, function($a, $b){
	if ($a['rate'] == $b['rate']) {
        return 0;
    }
    return ($a['rate'] < $b['rate']) ? -1 : 1;
});
print_r($arr);
Ответ написан
Комментировать
trevoga_su
@trevoga_su
отсортировать с помощью СУБД
Ответ написан
Ваш ответ на вопрос

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

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