
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.02.2013, 13:40
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Массив A имеет вид: Код: php 1. Нужно превратить его в массив B вида: Код: php 1. Уровней вложенности может быть сколько угодно, разделитель только "_" Нужно изящное решение. Свое попозже опубликую) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 13:50
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Навскидку - не проверял на работоспособность. Код: php 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 13:59
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Да сама документация по explode может навести на решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 14:37
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Могу ошибаться, но вариант Рената расчитан только на приведённый вариант (что тоже правильно), если же массив будет типа Код: php 1. на выходе получим Код: php 1. другими словами первый массив с ключём "aa" будет перезаписан вторым. Кстати, на работоспособность не проверял тоже )) Предлагаю такой вариант: Код: 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. проверена и может обрабатывать даже вложенные массивы типа array("aa_bb_cc" => 123, "aa_dd_ee" => array("aa_dd"=>456)) и на выходе получаем Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 16:36
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
автордругими словами первый массив с ключём "aa" будет перезаписан вторым. Кстати, на работоспособность не проверял тоже ))Не-не, так не пойдет, ничего перезаписываться не должно :) Мой вариант был такой Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Единственный минус в нем, что $value = null преобразуется в пустую строку. В моем случае неприятный эффект. Как от него избавиться не придумал пока... Надеюсь, в ветке предложат более изящные решения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 17:24
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Shitbox2, ай яй яй, eval как нехорошо... меня всегда учили что это ужасно, но Yii его юзает вовсю - так что нынче даже не поймешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 17:28
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Shitbox2, С вашего позволения использую ваш метод и пределаю его: Код: php 1. 2. 3. 4. 5. 6. 7. 8. итого имеем: null сохраняеться и array("aa_bb_cc" => 123, "aa_bb_ee" => 456); нормально смерджиться а не перепишеться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 17:41
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
О! Так значительно лучше! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2013, 18:00
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Выдает Warning: Cannot use a scalar value as an array in ... : eval()'d code on line 1 если в ключе нет разделителя "_" т.е. array("aa" => 123, "dd_ee" => 456, ...) не обработается полностью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.03.2013, 06:01
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
eval зло. это тормозно и небезопасно. тем более когда можно решить задачу "более лучше"(с) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.03.2013, 10:37
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
r u, кароче пока представлены три решения: 1. через eval 2. через explode и все 3. через explode & ссылки кто нить что нить еще придумает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.03.2013, 23:49
|
|||
|---|---|---|---|
|
|||
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.03.2013, 20:46
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2013, 05:34
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
РенатА чем от моего варианта 13993806 отличаеться? именами переменных?) я тоже непонял )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2013, 10:13
|
|||
|---|---|---|---|
|
|||
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Ренат, Да действительно =) Прошу прощения, я мельком пробежался. Видимо мы одинаково мыслим) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.03.2013, 16:11
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Да, другие способы чего-то не придумываются. С ссылками наиболее правильный, думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.03.2013, 16:36
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Теперь бьюсь над расширением задачи. Возьмем этот вариант Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Нужно превратить его в функцию Код: php 1. где $filter — проходящее значение в подмассиве. К примеру, без фильтра имеем на выходе Код: php 1. если $filter = "bb", то на выходе получаем Код: php 1. если $filter = "сс", то на выходе получаем Код: php 1. если $filter = "ff", то на выходе получаем Код: sql 1. Т.е. значение в подмассиве, совпадающее с фильтром становится значением родителя, а остальные удаляются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.03.2013, 17:21
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
P.S. r u, в случае Код: php 1. твой код возвращает Код: php 1. &NULL вместо NULL, вообще, указатель на любое последнее значение вместо самого значения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.03.2013, 19:43
|
|||
|---|---|---|---|
Как в PHP создать многомерный массив из строки по разделителю? |
|||
|
#18+
Опять же мое решение: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. К сожалению, немного не по той логике. В данном примере вместо 'bb_B1_r', 'bb_B2_s', 'bb_B3_d' запишется 'bb' => "абв", а должно 'bb' => array('s' => "абв"). Т.е. все внутренние массивы разрушается до последнего значения.Есть работающие решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&mobile=1&tid=1464039]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 315ms |

| 0 / 0 |
