powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
8 сообщений из 8, страница 1 из 1
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38597077
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример:
array [id = 4; name = "nnn"; num = 5]
array [id = 8; name = "asc"; num = 7]
array [id = 2; name = "dfg"; num = 2]
array [id = 9; name = "gux"; num = 1]
array [id = 5; name = "ruu"; num = 3]

Необходимо получить:
array [id = 9; name = "gux"; num = 1 ]
array [id = 2; name = "dfg"; num = 2 ]
array [id = 5; name = "ruu"; num = 3 ]
array [id = 4; name = "nnn"; num = 5 ]
array [id = 8; name = "asc"; num = 7 ]

Сортировка производится по полю num.
Как это реализовать с помощью стандартных php-функций сортировки ?
И чтобы было красиво и изячно. Главное - изячно.
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38597096
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38597098
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02Пример:
array [id = 4; name = "nnn"; num = 5]
array [id = 8; name = "asc"; num = 7]
array [id = 2; name = "dfg"; num = 2]
array [id = 9; name = "gux"; num = 1]
array [id = 5; name = "ruu"; num = 3]

Необходимо получить:
array [id = 9; name = "gux"; num = 1 ]
array [id = 2; name = "dfg"; num = 2 ]
array [id = 5; name = "ruu"; num = 3 ]
array [id = 4; name = "nnn"; num = 5 ]
array [id = 8; name = "asc"; num = 7 ]

Сортировка производится по полю num.
Как это реализовать с помощью стандартных php-функций сортировки ?
И чтобы было красиво и изячно. Главное - изячно.

Код: php
1.
usort($arr, function($a, $b){return $a['num']<$b['num'] ? -1 : ($a['num']>$b['num'] ? 1 : 0);});
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38598413
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача с небольшим подвохом. Нужно сделать так, чтобы эта функция работала с любыми значениями $numFieldName:
Код: php
1.
2.
3.
4.
5.
6.
7.
function func_sortArraysByNum(&$container, $numFieldName = 'num') {        

        usort($container, function($fields1, $fields2, $numFieldName) {
                          return (intval($fields1[$numFieldName]) > intval($fields2[$numFieldName])) ? 1:
                                ((intval($fields1[$numFieldName]) == intval($fields2[$numFieldName])) ? 0: -1); });
                                
}  // func_sortArraysByNum



Реализуемо ?
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38598495
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02,

тут примеры #3 и #4 полностью решают поставленную задачу ;)
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38599120
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так:
Код: php
1.
2.
3.
4.
5.
6.
7.
function sortArraysByNum(&$container, $numFieldName = 'num') {

        return usort($container, function($fields1, $fields2) use ($numFieldName) {
                                 return (intval($fields1['num']) > intval($fields2['num'])) ? 1:
                                       ((intval($fields1['num']) == intval($fields2['num'])) ? 0: -1); });
                                
}  // sortArraysByNum


P.S. PHP >= 5.3
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38599122
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так:
Код: php
1.
2.
3.
4.
5.
6.
7.
function sortArraysByNum(&$container, $numFieldName = 'num') {

        return usort($container, function($fields1, $fields2) use ($numFieldName) {
                                 return (intval($fields1[$numFieldName]) > intval($fields2[$numFieldName])) ? 1:
                                       ((intval($fields1[$numFieldName]) == intval($fields2[$numFieldName])) ? 0: -1); });
                                
}  // sortArraysByNum


P.S. PHP >= 5.3
...
Рейтинг: 0 / 0
Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
    #38599123
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственный форум в Мире, на котором нельзя редактировать сообщения %(
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сортировка массива ассоциативных массивов по значению поля в ассоциативных массивах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]