Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163

Отсортировать массив от меньшего к большему по дате и в следующем массиве от меньшего к большему по id

07.11.2016, 22:28. Показов 2014. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ещё раз здрасте всем, как отсортировать такого типа ассоциативный массив..

от меньшего к большему по дате и в следущем массиве от меньшего к большему по id

хочу чтобы выглядело так:


PHP
1
2
3
4
5
6
7
8
9
10
//Цифры вымышленые, чтобы принцип понятен был
['2016-01-05' => '1' => [ ] ]
['2016-01-05' => '2' => [ ] ]
 
['2016-01-07' => '1' => [ ] ]
['2016-01-07' => '2' => [ ] ]
['2016-01-07' => '3' => [ ] ]
 
['2016-01-10' => '2' => [ ] ]
['2016-01-10' => '3' => [ ] ]
Миниатюры
Отсортировать массив от меньшего к большему по дате и в следующем массиве от меньшего к большему по id  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.11.2016, 22:28
Ответы с готовыми решениями:

Отсортировать массив от меньшего к большему
Помогите отсортировать Mas2; #include <stdio.h> #include <conio.h> #include <math.h> int main(){ int...

Отсортировать двухмерный массив, от меньшего к большему
помогите пожалуйста отсортировать двухмерный массив, от меньшего к большему. Спасибо за ранее

Отсортировать матрицы от меньшего к большему методом пузырька
Надо отсортировать массив от меньшего к большему методом пузырька, проблема заключается в том, что я сделал сортировку, но сортируется...

11
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
07.11.2016, 22:34
uasort() используй.
0
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163
07.11.2016, 22:42  [ТС]
Azdeman, как функция для двухмерного массива выглядеть будет не очень представляю
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
08.11.2016, 04:58
сортируйте сразу в БД
0
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163
08.11.2016, 09:01  [ТС]
полудух, это не с бд данные
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
08.11.2016, 09:03
тогда через strtotime() сортируйте
0
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163
08.11.2016, 11:20  [ТС]
как можно в этом цикле при добавлении значений в массив result не перезаписывая по ключу добавить данные?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
foreach ($data as $key => $value)
        {
            foreach ($value as $k => $item)
            {
                foreach ($item as $client_id => $commission)
                {
                    dump($commission);
                    //$result[$k][$client_id] = $commission;
                }
            }
 
        }die;

в $commission:

PHP
1
[0 => 0.5] , [0 => 1, 1 => 0.9] , [0 => 4] // что на подобии таких значений я хочу чтобы было под client_id  = [0 => 0.5 , 1 => 1, 2 => 0.9, 3 => 4]
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
08.11.2016, 12:16
sendxt,

PHP
1
2
If(!isset($result[$k][$client_id]))$result[$k][$client_id] = array();
$result[$k][$client_id][] = $comission;
Судя по скриншоту в первом сообщении у вас там три уровня вложенности. Если вы хотите сразу все отсортировать, то имеет смысл сначала сделать плоскую таблицу, то есть двумерный массив и тогда вы сможете отсортировать все ваши данные по нужным ключам через multisort например, либо usort с callback-функцией если время выполнения не сильно критично.
1
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163
08.11.2016, 12:45  [ТС]
Упростил не много массив.. вот он теперь какой его надо отфильтровать и собрать по дате и id , id идёт за ключём даты.


под датой 2016-01-10 , есть два id [1, 3] так бы делал как-то так: но в этом месте берёт последний только

PHP
1
2
3
4
5
6
7
8
9
        foreach ($data as $key => $value)
        {
            foreach ($value as $k => $item)
            {
                $result[$k][key($item)] = $item[key($item)]; // ну тут конечно проверку чтобы ключи не повторялись... 
               }
            }
 
        }die;
Миниатюры
Отсортировать массив от меньшего к большему по дате и в следующем массиве от меньшего к большему по id  
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
08.11.2016, 13:11
Лучший ответ Сообщение было отмечено sendxt как решение

Решение

sendxt,

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
foreach ($data as $elem) //Перебираем элементы
{
    foreach ($elem as $keyDate => $item) //Перебираем даты
    {
        if(!isset($result[$keyDate])) //Если такой даты не было, добавляем массив с ключрм
        {
            $result[$keyDate] = array();
        }
 
        foreach ($item as $id => $value) //Перебираем id, предполагается что id внутри даты уникален
                                         //поэтому устанавливаем без проверки
        {
            $result[$keyDate][$id] = $value;
        }
   
    }
 
}
 
ksort($result); //Сортируем даты
 
foreach ($result as $key => $value) { //Для каждой даты сортируем id 
    ksort($result[$key]);
}
1
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163
08.11.2016, 14:15  [ТС]
круто только в keyDate вот что:
Изображения
 
0
11 / 11 / 13
Регистрация: 25.04.2012
Сообщений: 1,163
08.11.2016, 14:33  [ТС]
Извеняюсь всё хорошо, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2016, 14:33
Помогаю со студенческими работами здесь

Отсортировать данные от меньшего значения к большему по одному из столбцов
Есть таблица, нужно отсортировать данные от меньшего значения к большему по одному из столбцов так после нажатия кнопки. Помогите плес, не...

Написать программу, которая должна отсортировать 5 чисел от меньшего к большему
Написать программу, которая должна отсортировать 5 чисел от меньшего к большему. То есть, она должна отсортировать массив от меньшего к...

Массив от меньшего числа к большему.
Суть проста,но по факту не знаю как реализовать... Нужно ввести 10 символов.Распределить от меньшего к большему и запихнуть в массив.PS...

Отсортировать вектор типа char (от меньшего кол-ва символов в слове к большему и наоборот)
Подскажите, как отсортировать вектор типа char (от меньшего кол-ва символов в слове к большему и наоборот)

Проверить, отсортирован ли одномерный массив от меньшего к большему
Дано одномерный массив, проверить отсортирован ли он от меньшего к большему


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru