Php 将新值分配给键的数组=>;已设置值时的值
我正在使用Laravel中的翻译,我有几个带有翻译键的数组,它们映射到相应的翻译。我需要删除任何带有Php 将新值分配给键的数组=>;已设置值时的值,php,laravel-4,Php,Laravel 4,我正在使用Laravel中的翻译,我有几个带有翻译键的数组,它们映射到相应的翻译。我需要删除任何带有--的翻译,并用空字符串替换它。我已经在同一个函数中做了一些其他str替换,所以可能我正在破坏该函数 以下是整个函数的外观: public function getWithContext($locale, $context) { $this->registerContext($context); $contextKey = "{$locale}.{$context}";
--
的翻译,并用空字符串替换它。我已经在同一个函数中做了一些其他str替换,所以可能我正在破坏该函数
以下是整个函数的外观:
public function getWithContext($locale, $context)
{
$this->registerContext($context);
$contextKey = "{$locale}.{$context}";
if ($this->has($contextKey)) return $this->get($contextKey);
$out = [];
$data = $this->get($locale);
foreach ($data as $key => $value) {
if (preg_match("/^({$context}\.)/", $key)) {
$k = str_replace("{$context}.", "", $key);
$out[$k] = ($value == "—-") ? "" : $value;
}
}
if (!empty($out)) {
$this->put($contextKey, new Collection($out));
}
return $out;
}
我正在尝试获取行
$out[$k]=($value==“--”)吗?“”:$value代码>以专门工作 不确定这是否与此有关,但在您的问题中,您提到了字符串“--”
,但在您的代码中,字符串是“--”
,它的第一个破折号有不同的字符我找到了解决问题的方法。通过键盘输入的破折号编码与服务器看到的不同。因此,我必须将服务器中的值复制到代码中,它工作得非常好 什么不起作用?您是否有错误,或者作业不起作用?你的$out
var中有什么?我没有收到错误,只是没有像我预期的那样将破折号更改为空字符串。我在下面的回答中公布了发生的事情。谢谢你的邀请和帮助。这正是问题所在!