我正在合并两个不同版本的翻译数组。最近的版本有很多变化,超过几千行代码。
为此,我加载并评估了新文件(使用相同的结构和键名),然后加载并评估旧版本,用我们已经翻译的值覆盖数组中新的未翻译值。 / p>
到目前为止一切顺利!
但是,我希望能够回显出这个新合并数组的构造函数,这样我就可以将其剪切并粘贴到新的翻译文件中,并完成工作(除了完成其余的翻译......)。
代码看起来像这样(许多不同的键,而不仅仅是索引):
$lang["index"]["chart1_label1"] = "Subscribed";
$lang["index"]["chart1_label2"] = "Unsubscribed";
旧的..
$lang["index"]["chart1_label1"] = "Subscrito";
$lang["index"]["chart1_label2"] = "Não subscrito";
加载这两个文件之后,我最终得到了一个合并的$ lang数组,然后我想以相同的形式回显,所以它可以被项目使用。
然而,当我做这样的事情时......
foreach ($lang as $key => $value) {
if (is_array($value)) {
foreach ($value as $key2 => $value2) {
echo "$lang['".$key."']"; // ... etc etc
}
}
}
..显然我得到“ArrayIndex”等而不是“$ lang”。如何在没有评估的情况下回显$ lang ..?一旦这个工作,可以添加其余的括号等(我意识到它们已经丢失),但只是想让这个部分先工作。
如果有更好的方法可以做到这一点,那么所有的耳朵也是如此!
感谢。
修改
我真正想要的是this:
“注意:与其他三种语法不同,特殊字符的变量和转义序列在单引号字符串中时不会被展开。”
所以甚至不需要逃避。有一天可能派上用场了......关于合并数组,在array_merge()的PHP手册页上有一个很好的递归数组合并函数,它也派上用场了。
感谢投降的人!也爱你。
答案 0 :(得分:1)
要么转义$:"\$lang"
,要么使用单引号:'$lang'
请注意,如果您的整个问题归结为“如何在PHP中输出美元符号”,那么您真的不需要发布整页的背景故事
答案 1 :(得分:1)
有var_export()
功能,但我不明白这个可怕的混乱的目的
这也是...... 手册
为什么不使用gettext
- 多语言网站的行业标准?
或至少是其他一些格式,比普通的PHP更可靠? 编程代码不旨在自动编写。