Как сортировать многомерный массив по нескольким столбцам?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как сортировать многомерный массив по нескольким столбцам?

Сообщение Anonymous »

Я пытаюсь сделать так же, как MySQL запрос < /p>

SELECT * FROM table ORDER BY field1, field2, ...< /code> < /p>

Но с PHP и многомерным массивом: < /p>

$Test = array(
array("a"=>"004", "n"=>"03"),
array("a"=>"003", "n"=>"02"),
array("a"=>"001", "n"=>"02"),
array("a"=>"005", "n"=>"01"),
array("a"=>"001", "n"=>"01"),
array("a"=>"004", "n"=>"02"),
array("a"=>"003", "n"=>"01"),
array("a"=>"004", "n"=>"01")
);
function msort(&$array, $keys){
array_reverse($keys);
foreach($keys as $key){
uasort($array, sortByKey);
}
//
function sortByKey($A, $B){

global $key;

$a = $A[$key];
$b = $B[$key];
if($a==$b) return 0;
return ($a < $b)? -1 : 1 ;
}
}
//
msort($Test, array("a","n"));
//
foreach($Test as $t){
echo('
'.$t["a"].'-'.$t["n"].'
');
}
< /code>

Моя теория такова: если я сортирую несколько раз по столбцам с «меньшей важности», то столбцы «Большая важность», я получу такой порядок, подобный вышеуказанному запросу MySQL . < /p>

К сожалению, PHP возвращается: < /p>


предупреждение: uasort () ожидает Параметр 2 как действительный обратный вызов, функция 'sortbykey' не найдено или неверное имя функции в /либририю/webserver/documents/www/teste.array_sort.php в строке 23 "(line uasort)
< /blockquote>

Это простая функция порядка.>

Подробнее здесь: https://stackoverflow.com/questions/228 ... le-columns
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»