@FRATEREH

Как преобразовать json string в php array с ключом — значением?

У меня есть JSON который я забираю с API, который выглядит таким образом:

string(714) "{"data":[{"id":6913,"notification_id":1248,"member_name":"The Gambia","member_code":"C270","document_symbol":"G\/MA\/QR\/N\/GMB\/1","qr_serial_number":1,"qr_group":982092674,"measures":[{"symbol":"P-X","label":"Prohibition"}],"administrative_mechanisms":null,"national_legal_bases":"Essential Commodities Emergency Powers Regulations, 2020 (Legal Notice No. 10) as amended by Legal Notice No. 16.\n\nRestriction was in force from 31 March 2020 to 16 July 2020.","description":"Temporary export prohibition of essential products as a response to the COVID-19 pandemic","period_from_dt":"01\/10\/2018","period_to_dt":"30\/09\/2020","in_force_dt":"22\/09\/2021","details":"https:\/\/qr.wto.org\/api\/v2\/qrs\/6913"}]}"
string(767) "{"data":[{"id":4731,"notification_id":1142,"member_name":"Saudi Arabia, Kingdom of","member_code":"C682","document_symbol":"G\/MA\/QR\/N\/SAU\/1","qr_serial_number":1,"qr_group":73926649,"measures":[{"symbol":"P-X","label":"Prohibition"}],"administrative_mechanisms":"The measures have been taken to ensure the supply of goods necessary for preventing critical shortage of essential products and preservation of human health.","national_legal_bases":"Royal Decrees No. 35700 for year 1441H dated 09\/7\/1441H (4\/2\/2020) and No. 46009 for year 1441H dated 28\/7\/1441H (23\/3\/2020).","description":"Export Prohibition","period_from_dt":"01\/10\/2018","period_to_dt":"30\/09\/2020","in_force_dt":"04\/05\/2020","details":"https:\/\/qr.wto.org\/api\/v2\/qrs\/4731"}]}"


Мне нужно сделать json_decode, но что бы оно вывело его двумя array с key => value

Если я делаю json_decode до закрытия curl оно выводит все элементы, если после то только последний, но выводит по сути не совсем то что мне нужно

array(1) {
  ["data"]=>
  array(20) {
    [0]=>
    array(15) {
      ["id"]=>
      int(546)
      ["notification_id"]=>
      int(21)
      ["member_name"]=>
      string(4) "Mali"
      ["member_code"]=>
      string(4) "C466"
      ["document_symbol"]=>
      string(15) "G/MA/QR/N/MLI/1"
      ["qr_serial_number"]=>
      int(1)
      ["qr_group"]=>
      int(242777765)
      ["measures"]=>
      array(1) {
        [0]=>
        array(2) {
          ["symbol"]=>
          string(1) "P"
          ["label"]=>
          string(11) "Prohibition"
        }
      }
      ["administrative_mechanisms"]=>
      string(0) ""
      ["national_legal_bases"]=>
      string(41) "Arrêté n°01-2699/MICT-SG du 21/10/2001"
      ["description"]=>
      string(28) "Prohibition à titre absolu."
      ["period_from_dt"]=>
      string(10) "01/10/2012"
      ["period_to_dt"]=>
      string(10) "30/09/2014"
      ["in_force_dt"]=>
      string(10) "16/10/2012"
      ["details"]=>
      string(33) "https://qr.wto.org/api/v2/qrs/546"
    }
    [1]=>
    array(15) {
      ["id"]=>
      int(547)
      ["notification_id"]=>
      int(21)
      ["member_name"]=>
      string(4) "Mali"
      ["member_code"]=>
      string(4) "C466"
      ["document_symbol"]=>
      string(15) "G/MA/QR/N/MLI/1"
      ["qr_serial_number"]=>
      int(2)
      ["qr_group"]=>
      int(866644058)
      ["measures"]=>
      array(1) {
        [0]=>
        array(2) {
          ["symbol"]=>
          string(1) "P"
          ["label"]=>
          string(11) "Prohibition"
        }
      }
      ["administrative_mechanisms"]=>
      string(0) ""
      ["national_legal_bases"]=>
      string(41) "Arrêté n°01-2699/MICT-SG du 21/10/2001"
      ["description"]=>
      string(28) "Prohibition à titre absolu."
      ["period_from_dt"]=>
      string(10) "01/10/2012"
      ["period_to_dt"]=>
      string(10) "30/09/2014"
      ["in_force_dt"]=>
      string(10) "16/10/2012"
      ["details"]=>
      string(33) "https://qr.wto.org/api/v2/qrs/547"
    }


Как вывести это в нормальном варианте и в особенности убрать string()
Что бы можно было нормально делать foreach
Читал, что есть exploid но как его тут применить когда у меня все string - я про то что у меня в 1 массиве есть подмассив например и я не могу просто фильтровать скажем по запятой
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Уберите всю эту хрень вывода под спойлер

2)
Если я делаю json_decode до закрытия curl оно выводит все элементы, если после то только последний
какие элементы? Код давайте, явно вы там какой-то треш намутили.

3)
но выводит по сути не совсем то что мне нужно
Как выводите так и получаете

4)
Как вывести это в нормальном варианте и в особенности убрать string()
Зависит от того что вы хотите получить.

5)
Мне нужно сделать json_decode, но что бы оно вывело его двумя array с key => value
Вы его и получили, то что вы его выводите через var_dump, не понимая что и зачем вы делаете, сути не меняет.

6)
я про то что у меня в 1 массиве есть подмассив например и я не могу просто фильтровать скажем по запятой
array_walk_recursive()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы