如何在PHP中将一个数组存储为另一个数组中的键值?

How to store an array as a value of a key in another array in PHP?

我正在尝试将一个数组存储为另一个数组中的键值。 我不能使用 array_push() 或 for 循环之类的函数,因为第二个数组是作为函数的参数创建的。

我在谷歌上搜索了几个小时,但找不到任何答案!我是 PHP 的新手,所以我不知道这是否可行。

第一个数组类似于:

    $choices[] = array('1'=>'Blue','2'=>'Red)

编辑:这是我要添加的代码

    $choices[] = array('1'=>'Blue','2'=>'Red');

缺少 '; 是错字。数组的创建方式要复杂得多。在我尝试将其抽象并简化为 post 时,我错过了 '; 。感谢 @diéfani-favareto-piovezan 发现了这一点。

现在我想将这个数组作为键的值插入到另一个数组中,该数组是在代码的另一部分创建的:

     return randomFunction('random text', array(
                                   'a' => 'apple',
                                   'b' => 'banana',
                                   'c' =>  ,
                                  )

                          )

我希望数组 $choices 成为键 'c' 的值。

我试过了

     return randomFunction('random text', array(
                                   'a' => 'apple',
                                   'b' => 'banana',
                                   'c' => $choices,
                                  ),

                          )

但它给我一个错误

编辑:我想说我试过了

     return randomFunction('random text', array(
                                   'a' => 'apple',
                                   'b' => 'banana',
                                   'c' => $choices,
                                  )

                          )

再次尝试抽象和简化时(在 RandomFunction 中创建的实际数组大约有 250 行)我错误地添加了额外的逗号。感谢@brevis、@Nick 和@tim 发现了这一点并引起了我的注意。

    Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in /filename.php line 120

错误在代码中提到了另一行,但我知道这不是原因,因为如果我删除

                                   'c' => $choices,

没有错误。

编辑:我的意思是"before I added the 'c' line"(而不是"if I remove it"),没有错误。我还可以补充说 $choices 的创建先于 randomFunction 数组,所以这是我知道那里没有错误的另一个原因。

结论: 正如我提到的,错误是 'c' 行之后的额外 ),,我在尝试简化代码时未能在此处重现。我认为当我在我的实际代码中添加 'c' 行时,我一定是错误地添加了一个额外的 ), 。我之所以能找到它,是因为@nick 说 randomFunction 代码("I tried this" 之后的代码)应该有效。这是我需要确认错误不在该行的答案。感谢@dont-panic 的评论,我更仔细地查看了收到的错误消息并发现了额外的 )'。在一天结束时,每个人都帮助了我。谢谢大家!

对于遇到此问题的任何人,工作代码是

    $choices[] = array('1'=>'Blue','2'=>'Red');

     return randomFunction('random text', array(
                                   'a' => 'apple',
                                   'b' => 'banana',
                                   'c' => $choices,
                                  )

                          );

*

您的代码在红色后面缺少单引号和分号。

试试这个,看看它是否有效:

$choices[] = array('1'=>'Blue','2'=>'Red');

好的,我发现了错误:

我在第二个数组的末尾添加了一个额外的 ),

工作代码是

$choices[] = array('1'=>'Blue','2'=>'Red');

 return randomFunction('random text', array(
                               'a' => 'apple',
                               'b' => 'banana',
                               'c' => $choices,
                              )

                      );