2014-02-19 110 views
1

你好,我已經解碼了一個json字符串,我發送到我的服務器,我試圖從他的價值。訪問數組值爲空

我的問題是,我不能從內部數組獲取值。

這是我的代碼:

<?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); 


    } 

?> 

當我從我的$response的答案,我得到這個值:

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

爲什麼$array['exercise']空,如果我可以看到,是不是空的array

謝謝。

+1

您應該執行'var_dump($ arrayBig)'。你可能會看到你的數組中有另一個數組。 – jeroen

+0

我建議你啓用'display_errors'並將'error_reporting'設置爲'E_ALL'。你有一個未定義的索引錯誤'$ array ['exercise']' – Phil

回答

2

通過觀察的$response['array']的結果,它看起來像$array實際上是這個

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

即,嵌套在數字之一內的關聯數組。您應該在盲目分配值之前做一些值檢查,但爲了簡潔起見...

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

感謝它的工作:) – dasdasd

2

由於[{...}],當您解碼array密鑰時,您將獲得數組中的數組。

所以:

$exercise = $array['exercise']; 

應該是:

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

example here