【发布时间】:2019-05-30 23:14:46
【问题描述】:
我正在尝试将数组作为键的值存储在另一个数组中。 我不能使用像 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 的评论,我更仔细地查看了收到的错误消息,发现了额外的)'。在一天结束时,每个人都帮助了我。所以谢谢大家!
对于遇到此问题的任何人,工作代码是:
$choices[] = array('1'=>'Blue','2'=>'Red');
return randomFunction('random text', array(
'a' => 'apple',
'b' => 'banana',
'c' => $choices,
)
);
*
【问题讨论】:
-
在这种情况下,数组右括号后昏迷 99% 错误(
-
你写的代码(数组后面的伪逗号除外)是可以的。如果需要帮助,您需要向我们展示所有代码,包括带有实际错误消息的行
-
为什么该行相关?我已经说过如果我删除'c'行没有错误。
-
该行可能不是错误的直接原因,但我们在这里遇到的问题是该错误无法从您问题中的代码中重现。您显示的代码中存在语法错误,而不是会导致您遇到的特定解析错误的语法错误。
-
无法调试“示例”,嘿,医生这里是断臂的示例,不是我的,但您能帮我修复一下吗?
标签: php arrays key-value-store