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

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

как обратиться к массиву по строке?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 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);
Ответ написан
Ваш ответ на вопрос

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

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