【发布时间】:2012-07-06 13:35:16
【问题描述】:
我有多个数组,我在表单提交操作中将它们传递给文件 sales_process.php。数组命名如下:boards1 = {a , b , c}, board2 = {b , c , d}, board3 = {a , c , d} 。 .依此类推(值不是 a、b、c、d)。我在我的表单中通过多个“多个选择框”传递它们,其中 a、b、c、d 是我的多个选择选项:
for ($count=1;$count<10;$count++)
echo "<td>"."<select name='boards".$count."[]' multiple='multiple'>".showOptionsDrop($boards,$arr)."</select></td>";
现在,当我将它们传递给文件 sales_process.php 时,我想使用 implode 函数将这些数组转换为字符串,以便我可以将它们存储到我的“学校”表中。在 sales_process.php 文件中,我正在这样做:
for ($i=0;$i<$count;$i++) {
$board = implode(',',${'boards'.$i});
$query = "UPDATE schools SET board = '$board' where schoolcode = (some_no)";
$result = mysql_query($query) or die("Error in updating table :".mysql_error());
}
这样,每次我的循环运行时,boardsX 的值都会转换为字符串并存储在表中,其中 X 是 1,2,3.... 等等。
问题是内爆函数不起作用并给出错误:Warning: implode() [function.implode]: Invalid arguments passed in C:\xampp\htdocs\relationshipReport\sales_process.php on line 18
现在,如果您说变量 ${'boards'.$i} 不是数组,我这样做了,发现它只给了我一个数组:
$i=1;
var_dump(${'boards'.$i});
print_r(${'boards'.$i});
输出为:
array(3) { [0]=> string(4) "CBSE" [1]=> string(4) "ICSE" [2]=> string(5) "IGCSE" }
Array ( [0] => CBSE [1] => ICSE [2] => IGCSE )
我希望我的问题很清楚。请帮助我找出内爆函数中出了什么问题。如果你不明白这个问题,请提出来。
【问题讨论】:
-
在 PHP 中处理数组时,用方括号括起来,
[和],而不是花括号。尝试解决此问题并报告回来。 :) -
嗯,$i 为 1 时是数组,但它总是数组吗?
-
@SebastiánGrignoli :是的,我传递的变量是'boardsX'的格式,其中X是一个整数值,所以它在连接时总是一个数组。
-
@Spiritfyre : 我做了 $['boards'.$i] 只是为了发现它给了我一个表达式错误:(
-
您需要以
$_POST['boards'.$i]或$_GET['boards'.$i]的身份访问它,具体取决于您从表单发送内容的方式。