2017-05-25 69 views
0

這是我的調試代碼:不合邏輯的「未定義偏移」!

 echo $val2[ $key ]; 
     echo $val2[ 0 ]; 
     echo $val2[ "0" ]; 
     var_dump($val2); 
     die(); 

這是輸出:

Notice: Undefined offset: 0 in index.php on line 319 

Notice: Undefined offset: 0 in index.php on line 320 

Notice: Undefined offset: 0 in index.php on line 321 
array(1) { ["0"]=> float(0.123) } 

這讓我瘋了,爲什麼它說沒有鑰匙時,有清楚的是什麼?

+0

我認爲這是正確的'回聲$ VAL2 [0];'也許空格去掉? 'echo $ val2 [0];''你也可以使用print_r而不是var_dump(輸出不太冗長) – admcfajn

+0

感謝你的回覆,我意識到問題來自json_decode,我添加(array)infront,而不是添加true作爲參數2以數組形式返回 – user8066650

+0

@JayBlanchard'var_dump'總是在括號中顯示數組鍵,它們不是鍵的真正組成部分。看看'var_dump(array(「0」=>「foo」));' – Barmar

回答

0

問題從

$val2 = (array) json_decode($data); 

來到應該是:

$val2 = json_decode($data, true); 
+0

很酷 - 這甚至不是你的問題的一部分。 –