![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Gold Dragon |
|
||||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Мне необходимо сгруппировать данные из одного большого сложного массива в другой по определённому признаку (Array[$i]['i'])
Вот исходный массив
Должно получиться следующее
Я конечно написал код, но по моему он слишком сложный и хотелось бы его оптимизировать Вот мой код
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||||
|
|||||||
| faost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 5.11.2004 Репутация: 1 Всего: 2 |
Интересная задачка =)
Мое решение:
Это сообщение отредактировал(а) faost - 30.8.2006, 12:28 --------------------
Если у вас нет проблем, значит вы уже умерли |
|||
|
||||
| G0rinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 21.8.2006 Репутация: 1 Всего: 1 |
|
|||
|
||||
| faost |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 5.11.2004 Репутация: 1 Всего: 2 |
Так наверно будет более соответствовать требуемому результату --------------------
Если у вас нет проблем, значит вы уже умерли |
||||||
|
|||||||
| G0rinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 21.8.2006 Репутация: 1 Всего: 1 |
Ну вообще-то хреново замаскированное мое ;) Прям хоть редактирование сообщений выключай. Это ладно, мне не жалко. Только вот конструкция вызывает улыбку ))) Жжоте, молодой человек! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
faost, G0rinich, спасибо за решение, почти именно то что мне нужно.
Почему почти? я просто изначально не все условия сказал... i - это номер частотного интервала, он используется только для группирования, далее сохратять его не нужно f - это частота в интервале. это здесь i получилась подряд, а может быть некоторых интервалов не будет. Например будет 1,2,5,8,12,16. В итоге массив получится не сплошной. То есть мне нужно чтоб он начинался с 0 и дальше попорядку ЗЫ я конечно подправил, но вдруг что-то новое и лучшее кто-то напишет -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| sergejzr |
|
||||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
А зачем переписывать i, если с foreach ты и так их возьмёшь по порядку в любом месте кода. ПС: Если i обязательно упорядочить, то в одим проход не сделаешь (так как неизвестно, какие i вообще могут встречаться) Если знаем, что всегда следующий i больше предидущего, то целесообразно:
Извращения с first можно конечно обойти оператором each. Или array_pop (вроде..) Добавлено @ 19:41
Вот так покороче будет. |
||||||
|
|||||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 8 Всего: 18 |
А если попробовать вот так:
$old_array - входной массив $new_array - выходной |
|||
|
||||
| G0rinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 21.8.2006 Репутация: 1 Всего: 1 |
Я думаю проще и короче не получится. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |