问题和foreach - 区分

时间:2012-06-01 08:18:49

标签: php for-loop foreach

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

1 个答案:

答案 0 :(得分:2)

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

你的第一个例子,

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

所以,我想

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

假设拼写错误导致问题......