PHP - редактировать последнюю строку в foreach - PullRequest
0 голосов
/ 26 марта 2012

У меня есть следующий код для создания списка воспроизведения музыки на основе файлов в папке. Проблема в том, что раздел foreach будет отображать запятую в последнем ряду. Вот код ниже:

echo '<script type="text/javascript">
                $(document).ready(function(){
                    new jPlayerPlaylist({
                        jPlayer: "#jquery_jplayer_'. $counter .'",
                        cssSelectorAncestor: "#jp_container_'. $counter .'"
                    }, [';

            foreach(glob('files/'. $dir .'/*.mp3') as $file) {
                $filename = $file;
                $parts = Explode('/', $filename);
                $filename = $parts[count($parts) - 1];
                echo '{';
                echo 'title:"'. $filename .'",';
                echo 'mp3:"'.$file.'",';
                echo '},';
            } 
            echo'
                ], {
                    swfPath: "js",
                    supplied: "oga, mp3",
                    wmode: "window"
                    });
                });
            </script>'; 
            $counter ++;
    } 

со строкой с запятой, являющейся строкой 15 здесь:

            echo '},';

Кто-нибудь знает простое решение этой проблемы? Я ломал голову, пытаясь выяснить весь день, что больше ничего не имеет смысла. CHEERS!

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Получить файлы перед циклом и подсчитать их, затем проверять на каждой итерации

$files = glob('files/'. $dir .'/*.mp3');
$fCnt = count($files);
foreach($files as $i => $file) {
   -- SNIP --
   echo '}' . ($i != $fCnt - 1 ? ',' : '');
}
0 голосов
/ 26 марта 2012

Если я правильно понял, что вы хотите сделать: попробуйте сделать цикл с итератором, тогда вы сможете проверить, есть ли следующий объект для итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...