Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将新值分配给键的数组=>;已设置值时的值_Php_Laravel 4 - Fatal编程技术网

Php 将新值分配给键的数组=>;已设置值时的值

Php 将新值分配给键的数组=>;已设置值时的值,php,laravel-4,Php,Laravel 4,我正在使用Laravel中的翻译,我有几个带有翻译键的数组,它们映射到相应的翻译。我需要删除任何带有--的翻译,并用空字符串替换它。我已经在同一个函数中做了一些其他str替换,所以可能我正在破坏该函数 以下是整个函数的外观: public function getWithContext($locale, $context) { $this->registerContext($context); $contextKey = "{$locale}.{$context}";

我正在使用Laravel中的翻译,我有几个带有翻译键的数组,它们映射到相应的翻译。我需要删除任何带有
--
的翻译,并用空字符串替换它。我已经在同一个函数中做了一些其他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中有什么?我没有收到错误,只是没有像我预期的那样将破折号更改为空字符串。我在下面的回答中公布了发生的事情。谢谢你的邀请和帮助。这正是问题所在!