Intereting Posts
Ошибки в Unknown on Line 0 после обновления PHP Конфигурация Php и MySql для CentOS Почему мне не нравится комментарий с использованием API-интерфейса Facebook? Как присоединиться к таблице с этим кодом SQL? PHP Curl: получение каталогов с указанием и загрузкой каталогов, подключающихся к HTTP Как получить значение float при делении двух целых чисел? (PHP) Основанное на MySQL веб-приложение: простой способ для пользователей выбрать порядок или элементы? Есть ли способ отправить параметры в функцию обратного вызова, не создавая сначала мою собственную функцию? Как обрабатывать покупку для 2checkout с завитком PHPExcel строка autoheight на объединенные ячейки w / wrapText PHP PDO возвращает непоследовательные результаты для SELECT FOUND_ROWS () использовать PHP для создания таблицы HTML из запроса MSQL без дубликатов строк? Ошибки PHP в Point-in-Polygon Функция PHP для преобразования Unicode в специальные символы? Как я могу выполнить программу Java в php-скрипте?

Проблема сортировки массива в PHP

У меня есть следующий массив

[0] => Array ( [id] => 229 [val] => 2 ) [3] => Array ( [id] => 237 [val] => 1 ) [4] => Array ( [id] => 238 [val] => 6 ) 

Мне нужно отсортировать этот массив в соответствии с значениями val в массиве и не знаю, как это сделать?

Solutions Collecting From Web of "Проблема сортировки массива в PHP"

 function cmp($a, $b) { if ($a["val"] == $b["val"]) { return 0; } return ($a["val"] < $b["val"]) ? -1 : 1; } usort($yourarray, "cmp"); 

Прочтите это для получения дополнительной информации.

array_multisort может помочь в этом, пример 3 представляет собой аналогичную проблему и решение.

Вы можете использовать array_multisort()

Примеры здесь: http://www.php.net/manual/en/function.array-multisort.php

Примеры результатов сортировки по примерам № 3 – это то, что вы хотите. Может быть проще, если вы не знакомы с функциями обратного вызова и usort() .

используйте эту функцию для сортировки массива, приближающегося к вашей потребности

 function sksort(&$array, $subkey="id",$sort_ascending=false) { if (count($array)) $temp_array[key($array)] = array_shift($array); foreach($array as $key => $val){ $offset = 0; $found = false; foreach($temp_array as $tmp_key => $tmp_val) { if(!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) { $temp_array = array_merge( (array)array_slice($temp_array,0,$offset), array($key => $val), array_slice($temp_array,$offset) ); $found = true; } $offset++; } if(!$found) $temp_array = array_merge($temp_array, array($key => $val)); } if ($sort_ascending) $array = array_reverse($temp_array); else $array = $temp_array; } 

================================================== ========================= Теперь используйте эту функцию в массиве ур

 sksort($arrayname, "val"); /* for ascending */ sksort($arrayname, "val", true); /* for descending */