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

时间:2019-05-30 23:14:46

标签: php arrays key-value-store

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

我已经搜索了几个小时,找不到任何答案!我是PHP新手,所以我什至不知道这是否有可能。

第一个数组类似于:

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

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

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

缺少';是一个错字。数组的创建要复杂得多。在尝试对其进行抽象和简化以将其发布到此处时,我错过了';。感谢@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,

没有错误。

编辑:我的意思是说“在添加'c'行之前”(而不是“如果我将其删除”),则没有错误。我还可以补充一点,$choices的创建要早于randomFunction数组,因此这也是我知道那里没有错误的另一个原因。

结论: 正如我提到的那样,错误是在),行之后的一个额外的'c',在尝试简化代码时,在这里我无法重现。我认为,当我在实际代码中添加'c'行时,一定是错误地添加了额外的),。我只能发现这是因为@nick说randomFunction代码(“我尝试过此”之后的代码)应该可以工作。这就是我需要确认错误不在该行上的答案。感谢@ dont-panic的评论,我更加仔细地查看了收到的错误消息,并发现了额外的)'。最终,eveybody帮助了我。所以谢谢大家!

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

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

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

                          );

*

2 个答案:

答案 0 :(得分:0)

您的代码在Red之后缺少单引号和分号。

尝试一下,看看是否可行:

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

答案 1 :(得分:0)

好的,我发现了错误:

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

工作代码是

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

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

                      );