我正在使用foreach和for创建逗号分隔列表。以下是代码......
$timeofdaylist = "";
foreach($_POST['timeofday'] as $key => $value)
{
if($timeofdaylist == "")
{
$timeofdaylist = "'".$value."'";
}
else
{
$timeofdaylist .= ",'".$value."'";
}
}
echo $timeofdaylist;
上面的代码给出了一个逗号分隔的列表,如下所示:'AM','PM'
这里我的第一个条件$timeofdaylist == ""
正如我预期的那样正常工作。
现在是另一段代码
$timeofdaylist = "";
var_dump($timeofdaylist);
for($i=0;$i<count($_POST['timeofday']);$i++) {
if($timeofdaylist == "") {
$timeofdaylist = "'".$_POST['timeofday'][$i]."'";
} else {
$timeofdaylist = ",'".$_POST['timeofday'][$i]."'";
}
}
echo $timeofdaylist;
以上代码仅打印最后一个值,如下所示:'PM'
我有var_dumped timeofdaylist并在$timeofdaylist == ""
的第一个条件之前检查过。它显示长度= 0。
有人可以区分上述两段代码之间的区别吗? TIA
答案 0 :(得分:2)
因为您在每次迭代中重置了变量$timeofdaylist
,所以
所以它只包含数组的最后一个值
你的第一个例子,
$timeofdaylist .= ",'".$value."'";
=连接字符串
所以,我想
$timeofdaylist .= ",'".$_POST['timeofday'][$i]."'";
假设拼写错误导致问题......