这让我感到困惑,在将变量发布到我的数据库之前,我很累心将数组存储为变量。
这是我的代码
foreach( $_POST['parts'] as $key => $value){
$aparts .= $value.',';
}
它存储$aparts
很好,但我在下一行中得到Undefined变量错误。
$aparts .= $value.',';
我很新,随时随地学习我想知道为什么会发生这种情况:)
答案 0 :(得分:7)
这是因为您试图在没有定义的情况下附加到$aparts
。要修复它,请在foreach之前定义它:
$aparts = "";
foreach( $_POST['parts'] as $key => $value){
$aparts .= $value.',';
}
PHP还有一个名为implode()
的函数,其结果与foreach循环完全相同:
$aparts = implode(",", $_POST['parts']);
答案 1 :(得分:3)
插入时可以使用serialize(),而从数据库读取时可以使用unserialize()。这将采用一个数组并为您创建一个可以保存的字符串。然后,unserialize接受该字符串并再次创建数组。
即使您的内容中包含逗号,也会有效。您当前的方法(和另一个答案)不会,它会将带有逗号的单个字符串分成最终的两个单独的条目阵列。
答案 2 :(得分:1)
您应该在$aparts
声明之前声明foreach
:
$aparts = '';
foreach ($_POST['parts'] as $key => $value) { //...