Я пытаюсь преобразовать свои 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}
Вы ищете это? php.net/manual/ru/function.parse-str.php
В каждой итерации вы добавляете массив в конце $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);
data_array[$field_name] = $field_value;