Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122

Сортировка двумерного массива

29.04.2017, 16:45. Показов 2674. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сам вопрос вроде звучит не сложно и в гугл есть много ответов но не один так и не помог мне. Скорее всего я не совсем понимаю как сформулировать поисковой системе свой вопрос.

Есть двумерный массив.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    [answer] => Array
        (
            [0] => Array
                (
                    [answer_id] => 30
                    [answer_voice_id] => 9
                    [answer_text] => Нет мне не нравится PHP
                    [answer_status] => 1
                    [result_count] => 5
                    [result_percent] => 21.74
                )
 
            [1] => Array
                (
                    [answer_id] => 29
                    [answer_voice_id] => 9
                    [answer_text] => Да мне нравится PHP
                    [answer_status] => 1
                    [result_count] => 18
                    [result_percent] => 78.26
                )
 
        )
В самом нижнем уровне есть [result_percent] Вот есть желание сделать сортировку, так что бы массив составился от самого высокого процента к самому низкому.

То есть вот так
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    [answer] => Array
        (
            [0] => Array
                (
                    [answer_id] => 29
                    [answer_voice_id] => 9
                    [answer_text] => Да мне нравится PHP
                    [answer_status] => 1
                    [result_count] => 18
                    [result_percent] => 78.26
                )
 
            [1] => Array
                (
                    [answer_id] => 30
                    [answer_voice_id] => 9
                    [answer_text] => Нет мне не нравится PHP
                    [answer_status] => 1
                    [result_count] => 5
                    [result_percent] => 21.74
                )
 
        )
Но как это сделать так и не разгадал пока, подскажите как сортируются многомерные массивы, по значению в одном из младших массивов?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2017, 16:45
Ответы с готовыми решениями:

Сортировка двумерного массива
Здравствуйте. У меня такой двумерный маcсив, который я заполняю в цикле. foreach($pos as $key => $cal) { $words =...

Сортировка числового двумерного массива
Здравствуйте, у меня не получается отсортировать двумерный массив с целыми числами. Я пробовал встроенные функции сортировки и никак не...

Сортировка двумерного массива по возрастанию
есть массив Array ( => Array ( => 7 => Левит Евгений Юрьевич => 3 ...

15
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 19:50
Цитата Сообщение от Rassol2 Посмотреть сообщение
подскажите как сортируются многомерные массивы, по значению в одном из младших массивов?
http://php.net/manual/ru/function.usort.php
1
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
29.04.2017, 23:20  [ТС]
спасибо, но прочитав документацию так и не понял как оформить что бы массив был отсортирован по элементу [result_percent]
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 23:26
Rassol2, что конкретно не понятно?
0
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
29.04.2017, 23:30  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Rassol2, что конкретно не понятно?
Составление синтаксиса для того что бы отсортировать.
просто отсортировать одномерный массив по признаку могу.
А вот тут у меня все . Примеров подобных моему там нет.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 23:35
Цитата Сообщение от Rassol2 Посмотреть сообщение
Составление синтаксиса
Там все что надо - объявить 1 пользовательскую функцию и вызвать встроенную функцию. Что конкретно вызвало затруднение?

Добавлено через 55 секунд
Цитата Сообщение от Rassol2 Посмотреть сообщение
Примеров подобных моему там нет.
пример №2
0
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
30.04.2017, 00:26  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Rassol2, что конкретно не понятно?
Составление синтаксиса для того что бы отсортировать.
просто отсортировать одномерный массив по признаку могу.
А вот тут у меня все . Примеров подобных моему там нет.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Там все что надо - объявить 1 пользовательскую функцию и вызвать встроенную функцию. Что конкретно вызвало затруднение?
вы бы не могли показать пример ?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.04.2017, 01:33
такие данные должны в БД лежать
там и сортировка элементарная
0
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
30.04.2017, 02:48  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
такие данные должны в БД лежать
там и сортировка элементарная
С базы вытягиваются данные затем уже идет подсчет, и затем мы имеем многомерный массив который нужно отсортировать.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.04.2017, 03:50
так тяните сортированные
0
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
30.04.2017, 03:55  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
так тяните сортированные
Как тянуть сортированное если приходит массив с ключами, а потом форыч получает количество ответов и дописывает их в массив, затем уже считается процентное соотношение и тоже записывается в массив. И после этого нужно подготовить массив к выводу.

Я так понимаю что просто отсортировать так как я написал в первом посте нельзя ? Или нету штатных функций и нужно самому написать ?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.04.2017, 04:07
Цитата Сообщение от Rassol2 Посмотреть сообщение
затем уже считается процентное соотношение и тоже записывается в массив
это в БД всё считается и там же сортируется
0
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
30.04.2017, 04:08  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
это в БД всё считается и там же сортируется
То есть варианта отсортировать как я описал выше нету ?
Многомерные массивы не сортируются ?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.04.2017, 05:16
в пхп это гемор, в SQL намного проще
мало того, это лишние движения, в БД оно быстрее
можете так попробовать:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
// сортировка по count:
$a = array (
    array ( 'id' => 1, 'name' => 'Категория1', 'count' => 36 ),
    array ( 'id' => 2, 'name' => 'Категория2', 'count' => 1 ) ,
    array ( 'id' => 3, 'name' => 'Категория3', 'count' => 9 ) ,
    array ( 'id' => 4, 'name' => 'Категория4', 'count' => 5 ) ,
    array ( 'id' => 5, 'name' => 'Категория5', 'count' => 0 ) ,
    array ( 'id' => 6, 'name' => 'Категория6', 'count' => 7 ),
);
 
usort($a,function($l,$r) {return $l['count'] === $r['count'] ? 0 : ($l['count'] < $r['count'] ? -1 : 1);});
 
print_r($a);
1
30.04.2017, 09:00

Не по теме:

Цитата Сообщение от полудух Посмотреть сообщение
PHP
1
return $l['count'] === $r['count'] ? 0 : ($l['count'] < $r['count'] ? -1 : 1);
PHP
1
return $l['count'] - $r['count'];
А в PHP7
PHP
1
return $l['count'] <=> $r['count'];

0
3 / 3 / 0
Регистрация: 26.07.2012
Сообщений: 122
03.05.2017, 15:23  [ТС]
Цитата Сообщение от полудух Посмотреть сообщение
в пхп это гемор, в SQL намного проще
мало того, это лишние движения, в БД оно быстрее
можете так попробовать:
Я понимаю но сам я знаю как работает myasl и php по видео с ютуба, так что меня сложно назвать хоть как то разбирающимся в этом языке.
Я стараюсь черпнуть информацию в нете, но где у меня полный тупняк пишу сюда, ваш сприпт приспособил и все прекрасно работает, но как она работает так и не смог понять. Не смог понять сути как что на каком этапе обрабатывается.
Ставлю плюс и буду дальше разбираться. Это хобби.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.05.2017, 15:23
Помогаю со студенческими работами здесь

Сортировка двумерного массива простыми вставками
Помогите сделать сортировку простыми вставками в двумерном массиве.

Сортировка двумерного массива по переменной второго уровня
Доброго всем времени суток! Хотелось бы получить совет как же самым коротким способом отсортировать двумерный массив по переменной...

Сортировка двумерного массива сначала по цифрам, потом по буквам
Здравствуйте. Имеется массив такого типа $arr = array(&quot;2236&quot; =&gt; array(&quot;id&quot; =&gt; &quot;2236&quot;, &quot;name&quot; =&gt; &quot;75D&quot;), &quot;2241&quot;...

Сортировка двумерного массива
Дан двумерный массив. Отсортировать всю матрицу по убыванию

Сортировка двумерного массива
Есть задачка с 3-ох пунктов. Первый я сделал(создать многомерный целочисельный масив заданый пользователем). А вот с двумя никак не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru