получить значение из массива используя строку php

0

У меня есть следующий массив:

array('data' => array('one' => 'first', 'two' => 'second'));

Как я могу получить значение ключа "один", используя строку:

echo __('data.one');

function __($key) {
    $parts = explode('.', $key);
    $array = array('data' => array('one' => 'first', 'two' => 'second'));
    return ???;
}

Спасибо!

Теги:
arrays
key

2 ответа

1
Лучший ответ

Добавьте свою собственную обработку ошибок, если ключевой путь отсутствует в вашем массиве, но что-то вроде:

$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);
  • 0
    Спасибо! Оно работает!
0

Это должно сработать для вас:

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;

?>
  • 0
    :) мне нужно только по строке data.one
  • 0
    @o_flyer Обновил мой ответ! (Кстати: вы можете принять ответ, который помог вам больше всего и решил вашу проблему! ( Meta.stackexchange.com/q/5234 ))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню