| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > получить массив по его элементу |
| Автор: Irokez 20.3.2005, 20:23 | ||
можно ли получить массив (ссылку на массив), если есть элемент массива (ключ, значение) или ссылка на элемент массива, к примеру:
можно ли получить по $a или $b массив $array? или хотя бы "родительский" элемент $array['a']['b']['c']? |
| Автор: Mal Hack 20.3.2005, 21:10 |
| foreach( $a as $k => $v ) |
| Автор: Irokez 21.3.2005, 10:01 |
| Mal Hack хмм.. получить не элементы массива, а массив по элементу |
| Автор: Ni@m 21.3.2005, 12:07 |
| Врядли. Прийдется парсить массив. Может помочь функция in_array, она говорит, есть ли в массиеве елемент с данным значением. |
| Автор: Irokez 21.3.2005, 12:58 |
| Ni@m что значит парсить массив? и как может помочь функция in_array? разве что перебирая все массивы и искать в котором из них находится заданный элемент ... но это не то. |
| Автор: Mal Hack 21.3.2005, 16:07 |
| Irokez давай точнее. Покажи наглядно, что имеем на входе, и что должны получить на выходе. |
| Автор: Illuminaty 21.3.2005, 20:51 | ||
| Может попробовать так? Не в лоб, а в обход с помощью ООП:)
Элемент хранит сведения о своем владельце. |
| Автор: Irokez 21.3.2005, 21:18 | ||||||||
| ок, щас проясню ситуацию: наверное многие сталкивались с вопросом конфигов скриптов - держать отдельный файл, где содержатся переменные используемые в скрипте, этот конфиг должен быть легко управляем, чтобы изменять работу скрипта. Мне понадобилось сделать конфиг с помощью XML. Используя встроенные в пхп функции для парсинга XML получаю структуру XML документа, теперь мне надо эту структуру запихнуть массив, к примеру если конфиг был:
то я хочу получить массив следующего вида:
сказано, сделано, пишу скрипт:
он почти работает, есть еще проблемы с одинаковыми подряд идущими тегами, но это я исправлю, меня интересует этот кусок:
здесь я используя массив где хранятся ключи элемента получаю ссылку на массив ($array['config']['db']['login']), когда тег закрывается мне надо перейти в родительский элемент, т.е ($array['config']['db']) тут и возникает вопрос: можно ли имея ссылку на элемент массива получить сам массив или родительский элемент данного? чтобы каждый раз не производить цикл (foreach($keys as $key) $e=&$e[$key];) вот, надеюсь кто-нибудь понял, если хватит терпение читать это все до конца |
| Автор: Illuminaty 22.3.2005, 00:08 | ||
| Можно еще, что легче, хранить ссылку на "родительский" элемент с помощью специального ключа, который не сможет быть создан во время выполнения Например:
Выводит test_record Или я неправильно понимаю вопрос? |
| Автор: Irokez 22.3.2005, 20:18 |
| Illuminaty, хм это идея, не совсем конечно то, но надо подумать, спасибо, завтра попробую |