Переменная $group
содержит массив, в котором нужно вывести последнюю строку без запятой. Делаю это так:
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"},';
$numItems = count($group);
$i=0;
foreach($group as $filter) {
if(++$i === $numItems)
echo $group;
else echo $group',';
}
не получается. Как правильно?
$i = '';
foreach($group as $filter) {
echo $i . $filter;
$i = ',';
}
Хотя ваш $group на массив мало похоже.
Вариант с объединением элементов массива в строку, на мой взгляд, наиболее удобен
echo join(',', $group);
Вы же получаете JSON. Возможно следует не передавать лишнюю запятую при отправке, либо просто удаляйте последний символ.
<?php
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"},';
$group_cut = substr($group, 0, -1);
$arr = json_decode($group_cut, true);
echo $arr['file'];
?>
Можно еще проще сделать. Просто заменить
'},'
на
'}'
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"},';
$group = str_replace('},','}',$group);
В условие foreach надо добавить as $key => $filter
и внутрь цикла добавить условие:
if ( $key != ($numItems - 1) ) { echo $group . ','; }
else { echo $group; }
И в определении массива убрать в конце запятую, то есть не:
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"},';
А так:
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"}';
В принципе вам ответили, добавлю от себя способ с регуляркой, допустим, что у вас может быть не один массив, а несколько.
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"},';
$group = preg_replace('#\,{1}\z#', '', $group);
$group_ARR = json_decode($group, true);
var_dump($group);
print_r($group_ARR);
echo end($group_ARR);
$group - строка, не массив. Проверьте, может ошиблись?
Подозреваю что $group - json объект, тогда его можно переделать в массив, а оттуда в строку:
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"}';
$array = json_decode($group, true);
$result = [];
foreach($array as $key => $value) {
$result[] = $key . ':' . $value;
}
$result = implode(',', $result);
На выходе получим:
title:Title,artist:Artist,cover:img/1.png,file:./file/1.mp3
<?php
$group = '{"title":"Title", "artist":"Artist", "cover":"img/1.png", "file":"./file/1.mp3"},';
$group = substr($group, 0,-1);
$array = json_decode($group);
$result = [];
foreach($array as $key => $value) {
$result[$key] = $value;
}
echo "<pre>", var_dump($result);
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день, пишу парсер xlsxПроблема вот в чем, вытащил все данные из файла, теперь нужно по ним отыскать данные в бд
ак настроить вывод логов и ошибок php в терминал во время работы встроенного веб сервера php -S ? OS: ubuntu 1604
Всем здрааааааааааааааааааааааавствуйтеВозникла проблема с русскими буквами в регулярке preg_match