PHP: сортировка массива - PullRequest
2 голосов
/ 14 июля 2011

Пожалуйста, как мне отсортировать массив ниже

Array
(
    'ben' => 1.0,
    'ken' => 2.0,
    'sam' => 1.5
)

до

Array
(
    'ken' => 2.0,
    'sam' => 1.5,
    'ben' => 1.0
)

Спасибо.

Ответы [ 6 ]

3 голосов
/ 14 июля 2011

попробуйте это.

<?php
$my_array = array('ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5);

arsort($my_array);
print_r($my_array);
?>

Функция arsort() сортирует массив по значениям в обратном порядке. Значения сохраняют свои оригинальные ключи.

2 голосов
/ 14 июля 2011

Существует целый раздел руководства, посвященный таким вещам:

http://php.net/manual/en/array.sorting.php

редактировать: в частности, arsort()

2 голосов
/ 14 июля 2011
1 голос
/ 14 июля 2011

Если вы используете обычные функции сортировки массива PHP, вы потеряете ключи массива.Я думаю, что кратчайший путь к тому, что вы хотите, выглядит примерно так:

$array = array("ben" => "1.0", "ken" => "2.0", "sam" => "1.5");
array_multisort($array, SORT_DESC);
print_r($array);

Убедитесь, что все значения вашего массива являются либо строками, либо числами, иначе результат будет непредсказуемым.

1 голос
/ 14 июля 2011
$arr = Array(
'ben' => 1.0,
'ken' => 2.0,
'sam' => 1.5
)    
$sorted = asort($arr);
$reversed = rsort($sorted);
0 голосов
/ 14 июля 2011

ОБНОВЛЕНИЕ: не заметил, что вы хотели его в реверсе .. в случае использования rsort

Должна работать функция sort:

sort($theArray, SORT_NUMERIC);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...