Опишу подробнее - делаю галерею с загрузкой нескольких изображений на Laravel - у меня в таблице с товарами есть поле - file, в котором я записываю данные через JSON_encode и получаю такие значения в базе данных -
{"path":"sUH7TXv7.jpg"},{"path":"JBGeOqCn.jpg"},{"path":"NWNLQUh5.jpg"}
Как я могу перебрать эти значения, чтобы можно было потом перевести его в массив и вывести каждое значение по очереди, для отображения картинок?
Конкретно к вашему примеру:
$a = '{"path":"sUH7TXv7.jpg"},{"path":"JBGeOqCn.jpg"},{"path":"NWNLQUh5.jpg"}';
$b = explode(',', $a);
$c = array_map('json_decode',$b);
print_r($c);
Вывод:
Array
(
[0] => stdClass Object
(
[path] => sUH7TXv7.jpg
)
[1] => stdClass Object
(
[path] => JBGeOqCn.jpg
)
[2] => stdClass Object
(
[path] => NWNLQUh5.jpg
)
)
Как вариант, добавить в строку [], сделав это валидным JSON'ом с массивом объектов
$source = '{"path":"sUH7TXv7.jpg"},{"path":"JBGeOqCn.jpg"}'
$json = json_decode('[' . $source . ']');
foreach($json as $img) {
echo $img->path;
}
Используйте json_decode со вторым параметром, который делаейт из объекта массив. Объект лучше привести к такому виду
{"path":"sUH7TXv7.jpg","path":"JBGeOqCn.jpg","path":"NWNLQUh5.jpg"}
$source = '{"path":"sUH7TXv7.jpg","path":"JBGeOqCn.jpg","path":"NWNLQUh5.jpg"}';
$json = json_decode($source, true);
foreach($json as $img) {
echo $img; // ссылка на картинку
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Ребят, я сразу признаюсь я чайник, я верстальщик, хочу разобраться как мне сделать загрузку php файлов локально, я делаю корпоративный сайт,...
На php разрабатываю более 7 летГотовые фреймворки никогда не использовал, за исключением отдельных компонентов (или библиотек monolog, guzzlehttp и т
Столкнулся с проблемой: на Windows 10, не срабатывает max_execution_time для PHP CLI (любых версий, но на данный момент работаю с 56)
заметил что уже есть laravel v6 , однако большинства проектов написаны и тем более пишут на 5