2017-05-25 44 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

很酷 - 这甚至不是你的问题的一部分。 –