1
У меня есть многомерный массив, вот небольшой отрывок:Строка для многомерного пути массива
Array (
[Albums] => Array (
[A Great Big World - Is There Anybody Out There] => Array(...),
[ATB - Contact] => Array(...),
)
[Pop] => Array (...)
)
И у меня есть динамический путь:
/albums/a_great_big_world_-_is_there_anybody_out_there
Что бы быть лучшим способом, чтобы получить значение (в этом примере) $arr["albums"]["A Great Big World - Is There Anybody Out There"]
?
Обратите внимание: динамика должна быть динамической, поскольку в этом примере вложенность может быть более глубокой, чем 2 уровня.
EDIT
Вот функция я использую, чтобы создать простую строку для URL:
function formatURL($url) {
return preg_replace('/__+/', '_', preg_replace('/[^a-z0-9_\s-]/', "", strtolower(str_replace(" ", "_", $url))));
}
Этот цикл работ, но ребенок в моем массиве не называется '/альбомы/a_great_big_world _-_ is_there_anybody_out_there', это '/ Альбомы/Большой большой мир - есть кто-нибудь там». Любой способ легко исправить это, или я лучше переписываю массив? –
Ухм, да, нет очевидного способа преобразования нижней подчеркнутой строки в обведенную строку. Если у вас есть * очевидный путь, пойдите для этого. Или, если у вас есть генератор, который превращает обведенную строку с разнесенной строкой в нижнюю строчную подчеркнутую строку, используйте ее наоборот. Но придерживаться идентичных, уникальных идентификаторов всегда лучше, чем пытаться совместить две вещи, которые не совпадают. Перепишите свой массив. – deceze
Да, я думаю, что я буду использовать функцию 'formatURL' в моем основном сообщении наоборот. Спасибо за помощь! –