0

我正在使用 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

4

1 回答 1

2

$timeofdaylist因为您在每次迭代中重置变量,
所以它只包含数组的最后一个值

你的第一个例子,

$timeofdaylist .= ",'".$value."'";= 连接字符串

所以,我猜

$timeofdaylist .= ",'".$_POST['timeofday'][$i]."'";

假设拼写错误是问题的原因......

于 2012-06-01T08:22:41.183 回答