You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中使用字符串作为数组键访问多维数组元素?

PHP 多维数组通过字符串键路径访问的实现方法

方法一:解析键路径(推荐,安全可控)

先从字符串中提取所有独立键名,再通过循环逐层访问数组,完全避免代码注入风险,是最稳妥的方案:

// 初始化多维数组
$array['first_key']['second_key'] = 'value';
// 待解析的键路径字符串
$keys = "['first_key']['second_key']";

// 用正则匹配提取所有单引号包裹的键名
preg_match_all("/'([^']+)'/", $keys, $matches);
$keySequence = $matches[1]; // 得到数组:['first_key', 'second_key']

// 逐层访问数组
$targetValue = $array;
foreach ($keySequence as $key) {
    // 检查当前层级是否存在该键,避免报错
    if (isset($targetValue[$key])) {
        $targetValue = $targetValue[$key];
    } else {
        // 键不存在时的处理逻辑,可根据需求调整
        $targetValue = null;
        break;
    }
}

echo $targetValue; // 输出:value

方法二:使用eval(不推荐,存在安全风险)

如果能确保$keys的来源绝对安全(比如完全由自己生成,无外部输入),可以用eval直接执行拼接后的代码:

$array['first_key']['second_key'] = 'value';
$keys = "['first_key']['second_key']";

// 拼接代码并执行
eval("\$targetValue = \$array{$keys};");
echo $targetValue; // 输出:value

⚠️ 注意:eval会执行任意传入的PHP代码,若$keys包含恶意内容(比如来自用户输入的篡改),会直接导致代码注入攻击,因此非必要场景绝不推荐使用。


内容的提问来源于stack exchange,提问作者Rahmat Hidayat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:58:11