我正在处理jplayer html5音频播放列表。
我使用foreach为每个播放列表项生成脚本元素。除了我已经将逗号包含在循环中之外,一切都像预期的那样工作,但是我需要一种方法来写逗号作为分隔符,除了最后一项。
这就是我到目前为止用来生成jplayer播放列表的东西。
<?php foreach( $songs as $song ): if( !empty($song) ): ?>{
title:"Each Song Title",
mp3:"Each song mp3 url"
},<?php endif; endforeach; ?>这给了我
{
title:"Partir",
mp3:"http://www.jplayer.org/audio/mp3/Miaow-09-Partir.mp3"
},
{
title:"Thin Ice",
mp3:"http://www.jplayer.org/audio/mp3/Miaow-10-Thin-ice.mp3"
},
{
title:"Ice man",
mp3:"http://www.jplayer.org/audio/mp3/Miaow-10-Thin-ice.mp3"
},这就是我想要的结果
{
title:"Partir",
mp3:"http://www.jplayer.org/audio/mp3/Miaow-09-Partir.mp3"
},
{
title:"Thin Ice",
mp3:"http://www.jplayer.org/audio/mp3/Miaow-10-Thin-ice.mp3"
},
{
title:"Ice man",
mp3:"http://www.jplayer.org/audio/mp3/Miaow-10-Thin-ice.mp3"
}有谁能给我指个方向吗?
发布于 2012-07-06 14:32:17
我使用next():
$arr = array(1,2,3,4,5,6,7);
$copy = $arr;
foreach ($arr as $val) {
echo $val;
if (next($copy )) {
echo ','; // Add comma for all elements instead of last
}
}发布于 2012-07-06 14:54:29
你是说JSON?
echo json_encode($array);您也可以改用数组函数
// Create single items first
$array = array_map(
function ($item) {return sprintf(
'{title:"%s",mp3:"%s"}',
$item['title'],
$item['mp3']
);},
$array
);
// Then concatenate
echo implode(',' $array);让它变得完整:A for-solution
for ($n = count($array), $i = 0; $i < $n; $i++) {
echo sprintf('{title:"%s",mp3:"%s"}', $array[$i]['title'], $array[$i]['mp3'])
. ($i < $n-1 ? ',' : '');
}发布于 2012-07-06 14:43:23
您还可以做的是,首先将其存储在字符串中,而不是直接将其回显到浏览器。
<?php
$string = "";
foreach( $songs as $song ) {
if( !empty($song) )
{
$string .= '
{
title:"Each Song Title",
mp3:"Each song mp3 url"
},
';
}
}
$string = substr($string, 0, -1); //Removes very last comma.
echo $string;
?>如果需要,这也允许在整个代码中的其他地方使用它。
https://stackoverflow.com/questions/11356957
复制相似问题