У меня есть следующий массив:
array('data' => array('one' => 'first', 'two' => 'second'));
Как я могу получить значение ключа «один», используя строку:
echo __('data.one'); function __($key) { $parts = explode('.', $key); $array = array('data' => array('one' => 'first', 'two' => 'second')); return ???; }
Спасибо!
Добавьте свою собственную обработку ошибок, если ключевой путь отсутствует в вашем массиве, но что-то вроде:
$array = array('data' => array('one' => 'first', 'two' => 'second')); $key = 'data.one'; function find($key, $array) { $parts = explode('.', $key); foreach ($parts as $part) { $array = $array[$part]; } return $array; } $result = find($key, $array); var_dump($result);
Это должно сработать для вас:
return $array["data"]["one"];
Также для получения дополнительной информации и немного узнать: http://php.net/manual/en/language.types.array.php
И: PHP – Доступ к значениям многомерных массивов
РЕДАКТИРОВАТЬ:
Это должно сработать для вас:
<?php $str = "data.one"; $keys = explode(".", $str); $array = array('data' => array('one' => 'first', 'two' => 'second')); $access = $array; foreach($keys as $v) $access = $access[$v]; echo $access; ?>