Задать вопрос

Как обращение к многомерному массиву имея строку?

есть массив
array('one' => array('two'=>'kek'));
и строка
$string = '[one][two]';

как обратиться к массиву по строке?
  • Вопрос задан
  • 135 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
magalex
@magalex
Архитектор распределённых систем управления
$a = array('one' => array('two'=>'kek'));
$string = '[one][two]';
preg_match_all('/(\[[^\]]+\])/',$string,$matches);
$a[$mathes[0][0]][$mathes[0][1]];
Ответ написан
Комментировать
bigton
@bigton
Web-программист
Универсальное решение для большого кол-ва ключей
$arr = ['one' => ['two' => 'kek']];
$key = '[one][two]';

function arr_key_val($arr, $key) {

	$keys = trim($key, '[]');
	$keys = explode('][', $keys);

	$return = $arr;
	foreach ($keys as $k)
		$return = $return[$k];

	return $return;
}

echo arr_key_val($arr, $key);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы