我试着得到结果
丹尼喜欢吃橘子,香蕉和葡萄
是否可以通过foreach函数获取它
我的示例代码
$var = array (" orange "," banana "," grapes ");
echo 'danny love to eat ';
//NOT THIS METHOD
// echo $var [0];
// echo ("and");
// echo $var [1];
// echo ("and");
// echo $var [2];
//Through this method
foreach ($var as $fruit) {
echo $fruit ;
echo ("and");
}
如果我使用foreach
,我得到的结果丹尼喜欢吃橘子,香蕉和葡萄,
出了什么问题? :(
答案 0 :(得分:4)
你回应'和'一次太多次了。你不想回应'和'如果你是最后一个元素。
试试这个。
$var = array (" orange "," banana "," grapes ");
echo 'danny love to eat ' .implode('and',$var);
答案 1 :(得分:2)
@ bassxzero答案很棒(事实上,我建议通过这种方式这样做),但我想展示另一种方法,如果你想使用它,你可以做到这一点如果你愿意,还可以使用foreach循环。
$var = array ("orange","banana","grapes");
$string = 'danny love to eat ';
//Through this method
foreach ($var as $fruit) {
$string .= $fruit. " and ";
}
$string = substr($string, 0, -5);
echo $string;
在我的代码中,我们正在构建一个字符串,其中包含您想要分隔的所有单词"和"。然后,一旦循环完成,我们使用substr()
删除最后一个"和"这样$string
等于你期待的字符串。
答案 2 :(得分:0)
另一种解决方案可能是
$var = array (" orange "," banana "," grapes ");
$str = 'danny love to eat ';
$total = count($var); // counts your aray
foreach ($var as $fruit) {
$total--; // decrements $total value
$str .= $total < 1 ? $fruit : $fruit.' and '; //if $total is reduced to 0 your loop is on the last repeat, so dont print 'and' anymore
}
echo $str;
无论如何implode
方式在这里是最优雅的。