Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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 pass by ref未在主体内部有效使用_Php_Arrays_Reference - Fatal编程技术网

PHP pass by ref未在主体内部有效使用

PHP pass by ref未在主体内部有效使用,php,arrays,reference,Php,Arrays,Reference,我有一个函数,它包含两个参数,如下所示: public function setAssociatedGrants(array &$conversions, array $grants) { foreach ($conversions as $conversion) { foreach ($grants as $grant) { if ($conversion["transaction_histor

我有一个函数,它包含两个参数,如下所示:

 public function setAssociatedGrants(array &$conversions, array $grants)
    {
        foreach ($conversions as $conversion) {
            foreach ($grants as $grant) {
                if ($conversion["transaction_history_id"] == $grant["external_id"]) {
                    $conversion["new_key"] = $grant["external_id"];
                    break;
                }
            }
        }
    }

$conversions
$grants
都是嵌套数组。我需要修改
$conversions
的内部数组,但是我得到警告
pass by ref没有在body
中有效使用,并且当我返回
$conversions
时,新键不在其中。我希望输出中有新的键。如何修复此问题?

您需要将
用作&$conversion
,否则
$conversion
是一个副本。如果通过引用传递数组,为什么要返回它?呜呜。。是的,我是为了调试而退的。我已经编辑了代码,我不想费心回答这个问题,因为它几乎肯定是重复的,但我找不到原件。只需将
转换为$conversion
更改为
转换为&$conversion