<?php
$names =array('Alex','Billy','Tabby');
$names_str=null;
foreach($names as $key => $names)
{
$names_str .= $name;
if(key!= (count($names)-1))
{
$names_str.=', ';
}
}
echo $names_str;
?>
为什么我们设置names_str = null? 为什么我们把count($ names-1))这个循环如何工作?
答案 0 :(得分:2)
<?php
$names = array('Alex','Billy','Tabby');
$names_str = null;
foreach($names as $key => $names)
{
$names_str .= $name;
if(key != (count($names) - 1))
{
$names_str .=', ';
}
}
echo $names_str;
?>
为什么我们设置$names_str = null
?
它正在循环之外进行初始化。如果这是一个要返回的字符串,那么技术上如果你想要显示一个默认值并且不进行某种空/空检查,那么$names_str = "";
会更好。
为什么我们放count($names-1))
?
这会检查密钥#例如(0,1,2)对数组的计数/长度减1(数组从0开始),看看我们是否引用数组中的最后一个键/值对,以确定字符串是否应该显示逗号是否为当前值和下一个值。如果它是最后一个值,我们不想显示&#34;,&#34;在字符串的末尾。
此循环如何工作?
$names_str .= $name;
将$name
值连接到初始字符串,if / key检查每个值之间是否有逗号。见上面关于计数。因此,您最终将"Alex, Billy, Tabby"
作为$names_str
的最终值。
更好的方法是使用PHP的implode函数:
$comma_separated = implode(",", $names);
这会给你相同的逗号分隔列表。