@JTester

Как получить значение по ключу?

Здравствуйте! Есть вот такой массив.
$arr = ['test' => ['gg' => ['tt' => []], 'hh' => ['ii' => []]]];

Так же есть функция для получения!
function get($param) {
return $arr['test'][$param];
}

Вот допустим получить массив 'gg', 'hh' я могу получить, вот так get('gg') а вот как получить массив 'tt'? Смопощу аргумента? Спс заранее!
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
function get(...$params) {

    $arr = ['test' => ['gg' => ['tt' => ['gg+tt']], 'hh' => ['ii' => ['hh+ii']]]];

    $return = $arr['test'];

    foreach ($params as $key) {
        if(array_key_exists($key, $return)) {
            $return = $return[$key];
        } else {
            break;
        }
    }

    return $return;
}

var_dump(
    get('gg', 'tt')
);
Ответ написан
lenk0belk0
@lenk0belk0
программироваю
$arr = ['test' => ['gg' => ['tt' => []], 'hh' => ['ii' => []]]];

function get(array $array, ...$params) {
    $result = $array;
    
    foreach ($params as $param) {
        $result = $result[$param] ?? null;
    }
    
    return $result;
}

var_dump(get($arr, 'test', 'gg', 'tt'));
var_dump(get($arr, 'test', 'gg'));
var_dump(get($arr, 'test', 'hh'));
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы