Кажется где-то видел, но не помню где. Опишу немного. Есть многомерный массив с сообщениями для пользователей. Надо нарисовать функцию, которая по набору ключей будет выдергивать новую фразу. Все бы ничего, но вложенность может быть произвольной. Например PHP: <?php $messages['global']['error'] = "uncatcheble error"; $messages['blog']['redirect']['info'] = "comment succ posted"; вот, и надо чтобы чем-нить типа такого getMessage("/global/error"); можно было бы выдернуть сообщение. Свой велосипед я навоял, но помнится мне что что-то стандартное есть. Или я с xPath`ом путаю
PHP: function array_get_value($array, $path){ $args = explode('/', (trim($path, '/'))); $return = $array; foreach($args as $arg){ if(!is_array($return) || !isset($return[$arg])){ return null; } else { $return = $return[$arg]; } } return $return; } наверно что-то типа такого. Если такого значения не существует, то возвращается нулл.
ShamahN специально для тебя писал на самом деле в одной из тем поднимали уже этот вопрос. была реализация через рекурсию, но, ИМХО, это хрень, когда можно решить простым циклом. при больших массивах хотел посоветовать делать ссылками, но затем наткнулся на статью (из кэша гугла): http://webcache.googleusercontent.com/s ... clnk&gl=ru оригинал (у меня недоступен почему-то): http://habrahabr.ru/blogs/php/43489/
Gromo Спасибо за глубокий экскурс =) прислушаюсь. Массивы не будут сильно большими. Пару метров максимум. Максимальная глубина - 5