PHP数组作为变量名

Gal*_*x86 2 php arrays variables

如何发送php array vairable的索引名称.

数组是

$array = array('Somthing'=>array('More'=>array('id'=> 34)));
Run Code Online (Sandbox Code Playgroud)

现在我想显示这个东西,但是有一个变量名,我不知道如何解释所以我写了我想要的东西.

$index_name = '[Something][More][id]';

$array{$index_name};
Run Code Online (Sandbox Code Playgroud)

有可能吗?

nic*_*ckf 15

不是那样的.这是你如何做到的:

$array['Something']['More']['id']
Run Code Online (Sandbox Code Playgroud)

如果您特别想要使用单个字符串访问多维数组,那么您可以构建一个函数来执行此操作:

function array_multi(Array $arr, $path) {
    $parts = explode(".", $path);

    $curr =& $arr;
    for ($i = 0, $l = count($parts); $i < $l; ++$i) {
        if (!isset($curr[$parts[$i]])) {
            // path doesn't exist
            return null;
        } else if (($i < $l - 1) && !is_array($curr[$parts[$i]]) {
            // path doesn't exist
            return null;
        }
        $curr =& $curr[$parts[$i]];
    }
    return $curr;
}

// usage:
echo array_multi($array, "Something.More.id");    // 34
echo array_multi($array, "Something.More");       // array("id" => 34)
Run Code Online (Sandbox Code Playgroud)