Foreach, взорвать и сохранить данные в одном массиве

Я пытаюсь преобразовать свои example_data в тот же массив:

$example_data = "FirstName=Test&LastName=TestLastName&Address=ExampleSt";
$explode1 = explode('&', $example_data);

$data_array = array();
foreach ($explode1 as $values)
{
    $explode2 = explode(" = ", $values);

    $field_name = $explode2[0];
    $field_value =  $explode2[1];

    $data_array[] = array(
        $field_name    =>    $field_value
        );
}                

echo json_encode($data_array); 

Текущий вывод - разделенные массивы:

[{"FirstName":"Test"},{"LastName":"TestLastName"},{"Address":"ExampleSt"}]

Предполагаемый результат, который я ищу:

{"FirstName":Test,"LastName":TestLastName,"Address":ExampleSt}

data_array[$field_name] = $field_value;
Barmar 12.12.2020 23:19

Вы ищете это? php.net/manual/ru/function.parse-str.php

Sindhara 12.12.2020 23:22
Стоит ли изучать 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 и хотите разрабатывать...
1
2
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В каждой итерации вы добавляете массив в конце $data_array. Вместо этого вы можете просто использовать $field_name как ключ и $field_value как значение:

foreach ($explode1 as $values)
{
    $explode2 = explode(" = ", $values);

    $field_name = $explode2[0];
    $field_value =  $explode2[1];

    $data_array[$field_name] = $field_value; # Here!
}

Обновлено:
Кстати, в PHP есть встроенная функция parse_str, которая может сделать всю эту тяжелую работу за вас:

$example_data = "FirstName=Test&LastName=TestLastName&Address=ExampleSt";
$data_array = array();
parse_str($example_data, $data_array);

Для этого есть функция:

parse_str($example_data, $data_array);
echo json_encode($data_array);

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