Преобразовать переменную в массив в php

#php #arrays #json

#php #массивы #json

Вопрос:

Когда я использую <pre> для отображения моей переменной echo $value_detail_final;

он отображает соответствующий файл следующим образом

     {
        "companies": [
        {
        "id": "4127303000000527195",
        "company_name": "235 St Georges Landowning Trust amp; Australian City Properties Pty Ltd"
        },
        {
        "id": "4127303000004495043",
        "company_name": "Bourke Junction No 1 Pty Ltd"
        },
        {
        "id": "4127303000000527189",
        "company_name": "Brookfield Commercial Operations Pty Ltd"
        } 
       ]
    }
 

Но когда я использую что-то подобное $value_detail_final[0] , оно отображает {
если $value_detail_final[1] " это так, это похоже на отображение каждого символа в моей переменной.

даже foreach не работает, кстати, это из файла json, и я использую json_decode file .

Как я могу поместить каждый идентификатор и имя_компании в переменную, чтобы я мог их использовать?

Вот как я декодирую свой файл json на основе заданной структуры

 $jsondata = file_get_contents("response.json");

$array = json_decode($jsondata,true);
echo "<pre>";
foreach ($array as $key => $value) {

    // echo "Key:".$key."<br>";
    if($key=='details')
    {
        foreach ($value as $key_detail => $detail)
        {

            if($key_detail=='userMessage')
            {
                foreach ($detail as $key_detail_final => $value_detail_final)
                {
                    print_r($value_detail_final);
                }
            }
        }
    }
}
 

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

1. Затем она кодируется дважды или что-то [0] является первым символом строки, и это то, что вы получаете { . Покажите, что вы получаете, как вы это декодируете и каков результат.

2. @AbraCadaver Я добавил свою функцию декодирования

3. @catcon значит, я буду дважды json_decode() ?

4. @all Я уже добавил свою функцию json_decode

5. Это не имеет смысла, нет userMessage , и код не соответствует тому, что вы говорите, что хотите сделать.