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

PHP如何获取多语言结构JSON的顶层语言键并读取对应配置

问题原因

你之前的遍历写法没有捕获顶层数组的键名,只拿到了键对应的配置值,所以判断$key == 'en'实际是拿数组和字符串比较,自然无法生效。

最优解决方案

你已经明确知道要取对应语种的配置,不需要遍历整个数组,直接通过键名读取即可,性能更高,也避免冗余逻辑:

$target_lang = 'en'; // 可动态替换为当前站点的语种变量
$json_values = json_decode($array, true);

// 先判断目标语种配置是否存在,避免代码报错
if (isset($json_values[$target_lang])) {
    $config = $json_values[$target_lang];
    $label = $config['label'];
    $name = $config['name'];
    if ($config['f_type'] == 'input') {
        echo '<div class="form-group"><label for="usr">'.$label.':</label>
                <input type="text" value="'.$name.'" class="form-control"></div>';
    }
}

遍历判断的修正写法

如果确实需要遍历所有顶层键做逻辑判断,调整foreach语法同时捕获键名和值即可:

$json_values = json_decode($array, true);
foreach ($json_values as $lang_key => $config) {
    if ($lang_key == 'en') {
        echo "language is English";
        // 渲染逻辑写在这里
        $label = $config['label'];
        $name = $config['name'];
        if ($config['f_type'] == 'input') {
            echo '<div class="form-group"><label for="usr">'.$label.':</label>
                    <input type="text" value="'.$name.'" class="form-control"></div>';
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 06:30:04