Home > Blockchain >  I can't change JSON into a PHP array
I can't change JSON into a PHP array

Time:12-25

For some strange reason I can't change the following JSON to a PHP array:

{"sides0":{"name_nl":"Voorkant100","name":"Frontside100","template_overlay":""},"sides1":{"name_nl":"Achterkant100","name":"Backside100","template_overlay":"1"}}

I've validated the json and it's valid.

First I post $product['sides'] to my page, containing:

"{\"sides0\":{\"name_nl\":\"Voorkant100\",\"name\":\"Frontside100\",\"template_overlay\":\"\"},\"sides1\":{\"name_nl\":\"Achterkant100\",\"name\":\"Backside100\",\"template_overlay\":\"1\"}}"

Then I use json_decode on it like this:

$sidearr = json_decode($product['sides'], true);

If I then do:

echo '<pre>';
print_r($sidearr);
echo '</pre>';

It prints the first part of my question.

Now I want to loop over it, but even this test shows nothing:

foreach($sidearr as $side){
    echo 'test';
}

I tried testing if it even is an array with:

echo is_array($sidearr) ? 'Array' : 'not an Array';
echo "\n";

And it shows me that it is not an array. Why is that? I always thought using json_decode on a json string and add true inside the function turns it into a PHP array.

CodePudding user response:

It prints the first part of my question.

Because $sidearr is a string now, decode it again, you'll get an array.

$sidearr = json_decode($sidearr, true);
  • Related