dasdasd
dasdasd

Reputation: 2031

Accessing array value is null

Hello I have decoded a json string that I sent to my server and Im trying to get the values from him.

My problem is that I cant get the values from the inner arrays.

This is my code:

<?php

    $post = file_get_contents('php://input');

    $arrayBig = json_decode($post, true);

    foreach ($arrayBig as $array)
    {


    $exercise = $array['exercise'];

    $response["exercise"] = $exercise;
    $response["array"] = $array;

    echo json_encode($response);


    }

?>

When I get the answer from my $response I get this values:

{"exercise":null,"array":[{"exercise":"foo","reps":"foo"}]}

Why is $array['exercise'] null if I can see that is not null in the array

Thanks.

Upvotes: 1

Views: 50

Answers (2)

Phil
Phil

Reputation: 164767

From looking at the result of $response['array'], it looks like $array is actually this

[['exercise' => 'foo', 'reps' => 'foo']]

that is, an associative array nested within a numeric one. You should probably do some value checking before blindly assigning values but in the interest of brevity...

$exercise = $array[0]['exercise'];

Upvotes: 2

jeroen
jeroen

Reputation: 91734

Because of the [{...}] you are getting an array in an array when you decode your array key.

So:

$exercise = $array['exercise'];

Should be:

$exercise = $array[0]['exercise'];

See the example here.

Upvotes: 2

Related Questions