在php函数foreach中循环

时间:2017-10-26 16:29:53

标签: php loops foreach

我试着得到结果

  丹尼喜欢吃橘子,香蕉和葡萄

是否可以通过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

,我得到的结果
  丹尼喜欢吃橘子,香蕉和葡萄,

出了什么问题? :(

3 个答案:

答案 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方式在这里是最优雅的。