У меня есть следующий массив:
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;
?>