数组键的变量变量

连载

目前我试图调用一个多维数组,使用一个字符串作为一个或多个键。我想使用以下代码,但我认为密钥被解释为字符串。有什么解决办法吗?

$data= [];

$data['volvo'] = "nice whip";
$test = "['volvo']";

$data['drivers']['mike'] = "decent";
$test2 = "['drivers']['mike']";

echo $data$test;  // should read 'nice whip'
echo $data$test2; // should read 'decent'
菲利普

如果您需要动态数组访问解决方案,您还可以编写一个函数,它执行实际的数组访问,如下所示:

function path($array, $path) {
    $path = is_array($path) ? $path : explode('.', $path);
    $current = $array;
    while (count($path)) {
        $seg = array_shift($path);
        if (!isset($current[$seg])) throw new Exception('Invalid path segment: ' . $seg);
        $current = $current[$seg];
    }
    return $current;
}

在你的情况下,这看起来像这样

 echo path($data, 'volvo');
 echo path($data, 'drivers.mike');

或者

 echo path($data, ['volvo']);
 echo path($data, ['drivers', 'mike']);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章