与foreach循环

时间:2015-04-10 21:29:14

标签: php loops foreach while-loop

这是我的while循环。

$getsongs = mysql_query("SELECT * FROM hth_songs WHERE album='$album'");
while($song = mysql_fetch_array($getsongs)){
?>
    { title:"<?php echo $song[title]; ?>" },

<?php } ?>

问题是我总是需要一个&#34;,&#34;在我的回声结束时。但如果它是最后一项我不想要&#34;,&#34;最后。

我查了一下,我需要做这样的事情,但我不能让它发挥作用,不知道该如何处理。

$i = 0;
$len = count($array);
foreach ($array as $item) {
   if ($i == 0) {
    { title:"<?php echo $song[title]; ?>" }, // first
   } else if ($i == $len - 1) {
    { title:"<?php echo $song[title]; ?>" } // last
   }
    { title:"<?php echo $song[title]; ?>" }, // …
$i++;
}

(我在&lt; script&gt;里面运行这个php片段,这就是为什么我需要一个&#34;,&#34;最后激活最后一项)

任何帮助都会很受欢迎。

4 个答案:

答案 0 :(得分:1)

从数组中的值获取逗号描述字符串的最简单方法是使用implode()。

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

请注意,没有逗号,因为逗号是将值组合在一起的“粘合剂”。

答案 1 :(得分:1)

您似乎错过了其他人的&#39;在你的代码中:

$i = 0;
$len = count($array);
foreach ($array as $item) {
   if ($i == 0) {
    { title:"<?php echo $song[title]; ?>" }, // first
   } else if ($i == $len - 1) {
    { title:"<?php echo $song[title]; ?>" } // last
   }
   else
    { title:"<?php echo $song[title]; ?>" }, // …
$i++;
}

答案 2 :(得分:1)

你似乎有太多的头衔。试试这个:

$i = 0;
$len = count($array);
foreach ($array as $item) {
   $i++;
   if ($i == $len) {
      { title:"<?php echo $song[title]; ?>" } // last
   } else {
      { title:"<?php echo $song[title]; ?>" }, // others
   }     
}

答案 3 :(得分:0)

你的代码没有意义,$ song设置在哪里?为什么在if块中有额外的花括号?

假设您可以根据自己的情况调整:

$string = '';
foreach ($array as $item) {
    $string .= $item['song'] . ',';
}
echo rtrim($string, ',');