Как преобразовать вложенный объект js в массив php

#javascript #php #laravel #laravel-5

#javascript #php #laravel #laravel-5

Вопрос:

Я пытаюсь преобразовать объект js в массив php, он работает, но внутри этого объекта есть еще объекты, которые также необходимо преобразовать в массив

вот как я конвертирую

 $data = json_decode($order->data,true);
           dd($data);
 

Результат

 array:12 [
  "paymethod_id" => 1
  "business_id" => 76
  "delivery_type" => "1"
  "driver_tip" => 0
  "delivery_zone_id" => 6569
  "delivery_datetime" => null
  "location" => array:2 [
    "lat" => 18.7675049
    "lng" => -103.1445221
  ]
  "deliveryOptionmodal" => array:3 [
    "id" => 2
    "value" => "Esperar en la entrada"
    "$$hashKey" => "object:525"
  ]
  "delivery_cost_new" => 20
  "products" => "[{"id":48732,"code":"NPxRSw","quantity":1,"options":[],"ingredients":[]}]"
  "customer_id" => 129731
  "customer" => "{"id":129731,"name":"bil","middle_name":null,"lastname":"ar","second_lastname":null,"photo":null,"email":"bilal1212@gmail.com","cellphone":"0213123132131","address":"Coalcomán, Michoacán, Mexico","location":"{"lat":18.7675049,"lng":-103.1445221}","internal_number":null,"address_notes":"sss","zipcode":null,"map_data":{"library":"google","place_id":"ChIJz6WGrUw-MIQR_jYIoFZ-RPM"},"tag":"home"}"
]
 

Вы можете видеть, что объект customer и product не преобразуются в массив, как я могу это сделать?

Комментарии:

1. Если они были строками до того, как они были упорядочены в js, они останутся строками в php. Вы можете видеть, что он корректно работает для location и deliverOptionmodal, поэтому ошибка, скорее всего, в js.

Ответ №1:

Проще говоря, вы отправляете JSON кодировку JSON объекта с уже закодированными свойствами. Вы можете отправить правильные данные, которые являются правильным решением, но иногда для устранения существующих проблем необходимо принимать неправильные решения.

Затем просто расшифруйте свойства, и все будет в порядке.

 $data = json_decode($order->data, true);

$data['products'] = json_decode($data['products'], true);
$data['customer'] = json_decode($data['customer'], true);