Преобразование объекта массива в строку с использованием PHP (Laravel)

У меня есть такой код в моем проекте Laravel, и я хочу вернуть его как один массив.

[
    {
        "id": "1",
        "name": "value 1"
    },
    {
        "id": "2",
        "name": "value 2"
    },
    {
        "id": "3",
        "name": "value 3"
    },
    {
        "id": "4",
        "name": "value 4"
    },
    {
        "id": "5",
        "name": "value 5"
    }
]

и я хочу получить такой

$output = "value 1,value 2,value 3,value 4,value 5";

Это может помочь показать, что вы пробовали, и описать, что пошло не так. В противном случае может показаться, что никаких исследований не проводилось.

showdev 23.12.2020 01:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
1
1 139
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

$array = [];

foreach ($values as $value){
  $array[] = $value['name'];
}

это вернет один массив, но если вы хотите, чтобы он был строкой (например, в вашем примере), вам нужно сделать следующее:

$string = взорвать (',', массив $);

$value.name не является синтаксисом PHP.
El_Vanja 22.12.2020 21:29
Ответ принят как подходящий

Вы можете использовать метод уменьшения коллекции Laravel, чтобы получить вывод строки

$output = rtrim(
    collect($data)->reduce(fn($carry, $item) => $carry . "{$item['name']},"), ','
);

ИЛИ

$output = implode(',', collect($data)->map(fn($item) => $item['name'])->all());

Это довольно просто с методами Collection:

collect($array)->pluck('name')->join(',')

Или с методами массива:

join(',', array_column($array, 'name'))

Другие вопросы по теме