2011-07-02 72 views
1

我有一個數組,循環播放音樂曲目,但我需要從陣列的最後一個元素中刪除逗號,有人可以幫忙嗎?擺脫陣列的最後一個元素的逗號

<?php foreach ($bucket_contents as $file){ $fname = $file['name']; $furl = "http://".$isdHtml5Bucket.".s3.amazonaws.com/".urlencode($fname); 

if(preg_match("/\.mp3$/i", $furl)) { ?> 
    { 
      name:"<?php echo basename($fname); ?>", 
      mp3:"<?php echo $furl; ?>" 

     }, 
<?php }else{ ?> 
     { 
      name:"<?php echo basename($fname); ?>", 
      m4a:"<?php echo $furl; ?>" 

     },<?php } } ?> 

這裏是數組的輸出。

{ 
     name:"bassline", 
     m4a:"http://suyssamuelarawaeast.s3.amazonaws.com/warehouse%2Fbassline%2F" 

    }, 
    { 
     name:"Project Bassline - Drop The Pressure (Jack Beats Rinsed Out Remix).mp3", 
     mp3:"http://suyssamuelarawaeast.s3.amazonaws.com/warehouse%2Fbassline%2FProject+Bassline+-+Drop+The+Pressure+%28Jack+Beats+Rinsed+Out+Remix%29.mp3" 

    }, 
     { 
     name:"deadmau5 vs jelo the reward is cheese.mp3", 
     mp3:"http://suyssamuelarawaeast.s3.amazonaws.com/warehouse%2Fdeadmau5+vs+jelo+++the+reward+is+cheese.mp3" 

    }, 
    { 
     name:"vocal", 
     m4a:"http://suyssamuelarawaeast.s3.amazonaws.com/warehouse%2Fvocal%2F" 

    },  
      { 
     name:"Thin Ice", 
     free:true, 
     mp3:"http://www.jplayer.org/audio/mp3/Miaow-10-Thin-ice.mp3", 
     oga:"http://www.jplayer.org/audio/ogg/Miaow-10-Thin-ice.ogg" 
    }, 

如果您滾動到數組的最後一個元素,您可以看到一個逗號輸出。 我真的需要從數組的最後一個元素中刪除這個逗號。

感謝

+2

請以正確的方式格式化您的代碼 – KingCrunch

+1

。 –

+0

另外,我當然希望你有版權所有者的許可! –

回答

7

通過rtrim()通過您的字符串,並在charlist爲可移動字符指定逗號:

$str = rtrim($str, ','); 

編輯

還是......也許這種做法(未測試):

$songs = array(); 

foreach ($bucket_contents as $file) { 

    $fname = $file['name']; 
    $furl = "http://".$isdHtml5Bucket.".s3.amazonaws.com/".urlencode($fname); 

    $type = preg_match("/\.mp3$/i", $furl) ? 'mp3' : 'm4a'; 
    $songs[] = sprintf('{ name: %s, %s: %s }', $fname, $type, $furi); 
} 

echo implode(',', $songs); 
+0

由於他直接輸出,而不是創建一個字符串,他可能需要改變他的代碼來創建一個字符串或使用輸出緩衝來獲得輸出,然後'rtrim() '並重新輸出。 – Orbling

+0

公平點。不同的方法增加。 –

+1

+1好方法,假設他不希望格式化爲空格。 – Orbling

0

編輯:清理代碼。這個不像其他答案那樣使用臨時數組。

我不明白該代碼如何生成該輸出,因爲他的最終輸出塊中有不打印的字段。這且不說,這樣的事情可能是你想要的(未經測試)是什麼:

<?php 

$comma = ''; 
foreach ($bucket_contents as $file) { 
    $fname = $file['name']; 
    $furl = "http://".$isdHtml5Bucket.".s3.amazonaws.com/" . urlencode($fname); 
    $ext = preg_match("/\.mp3$/i") ? "mp3" : "m4a"; 

    printf('%s{\nname:"%s",\n%s:"%s"\n}', $comma, $fname, $type, $furi); 
    $comma = ",\n"; 
} 
?> 
+0

最後還是會有一個逗號。 – Neddy

+0

@Neddy:不,這個逗號印在每個塊的前面,除了第一個。 – Pianosaurus

+0

啊,是的:)).... – Neddy

0
<?php 

foreach($bucket_contents as $file){ 
    $fname = $file['name']; 
    $furl = "http://".$isdHtml5Bucket.".s3.amazonaws.com/".urlencode($fname); 
    $ext = preg_match("/\.mp3$/i") ? "mp3" : "m4a"; 

    $t[] = '{name:"'.basename($fname).'",'.$ext.':"'.$furl.'"}'; 
} 

echo implode(',',$t); 

你去那裏。更好:)