Php сортировать многомерный массив по ключу - PullRequest
2 голосов
/ 02 сентября 2011

php: отсортировать в алфавитном порядке многомерный массив по его ключу?

Я пытаюсь сделать то же самое, что и парень в теме выше меня.Но мой ksort ($ array), кажется, возвращает число 1. Что я делаю не так?

Ответы [ 4 ]

8 голосов
/ 02 сентября 2011

Ознакомьтесь с руководством :

bool ksort (массив & $ array [, int $ sort_flags = SORT_REGULAR])

Видите ли, ksort возвращает логическое значение и напрямую работает с данным массивом (обратите внимание на знак ссылки &). Так что вы, вероятно, делаете, присваивая возвращаемое значение ksort, например:

$array = ksort($array);

вместо, просто:

ksort($array);
3 голосов
/ 02 сентября 2011

Функция выполняет сортировку на месте, функция возвращает TRUE в случае успеха или FALSE в случае ошибки.

См. Пример из http://php.net/manual/en/function.ksort.php

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Сортированный результатнаходится в переменной $ fruits, а не из возвращаемого значения функции.

Если вы попробуете print_r ($ fruits), вы получите такой результат

Array
(
    [a] => orange
    [b] => banana
    [c] => apple
    [d] => lemon
)
0 голосов
/ 02 сентября 2011

Буквально не возвращает 1, возвращается true:

http://php.net/manual/en/function.ksort.php

Возвращаемые значения

Возвращает TRUEв случае успеха или FALSE в случае ошибки.

0 голосов
/ 02 сентября 2011

ksort() не возвращает массив, он манипулирует массивом, который вы ему передаете.

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