我是PHP的新手。我在业余时间一直在做这个“待办事项”,我发现有些奇怪。
我有两个相同的数组。一个通过 json_decode()函数解码,另一个通过 foreach 循环进行解码。然后,我使用 json_encode()函数对两个数组进行了编码,结果却不同。
我的实际代码:
$data = file_get_contents( $file );
$data = json_decode( $data, true );
unset($data[$i]);
echo '<pre>';
print_r( $data );
echo '</pre>';
echo '<pre>';
print_r( json_encode($data) );
echo '</pre>';
$arr = [];
foreach ($data as $item) $arr[] = $item;
echo '<pre>';
print_r( $arr );
echo '</pre>';
echo '<pre>';
print_r( json_encode($arr) );
echo '</pre>';
die();
希望您能理解我要指出的内容。 :(
更新:
存储文件的内容
[{"text":"hey","date":1532288364},{"text":"whatsup","date":1532288372}]
答案 0 :(得分:3)
json_encode()
将创建有效的JavaScript语法,该语法仅支持以索引0
开头且没有空格的数组。
如果json_encode()
检测到一个不满足此条件的数组,它将把它编码为一个对象,这是正确的情况。您的数组从索引1
开始,无法转换为有效的JavaScript数组。