[英]Is it possible to detect key type with json_encode?
很难解释,但是例如我有一个数组:
$lol = array(
'key' => 'value',
'key_1' => 'value 1',
'simple_value',
'0' => 'lol',
'key_array' => array(
'key_in_second' => 'value_with_key_in_second',
'value_in_second_array',
)
);
在json_encode
之后
{"key":"value","key_1":"value 1","0":"lol","key_array":{"key_in_second":"value_with_key_in_second","0":"value_in_second_array"}}
所以有可能以某种方式检测php
数组中是否有键或注释? 在我的示例中,元素'simple_value', '0' => 'lol'
具有相同的键。
PHP不在乎数字0是否用引号引起来。 它将其存储为数字0,与“ value_in_second_array”将为0相同,因为它是没有键的第一个元素。
基本上,
array('0'=>'lol')
与array(0=>'lol')
相同array('lol')
;
您会看到simple_value消失了,因为它已被lol覆盖。
JSON准确反映了php。 例如,如果您有以下代码:
<?php
$lol = array(
'key' => 'value',
'key_1' => 'value 1',
'simple_value',
'0' => 'lol',
'key_array' => array(
'key_in_second' => 'value_with_key_in_second',
'value_in_second_array',
)
);
print_r($lol);
输出为:
Array
(
[key] => value
[key_1] => value 1
[0] => lol
[key_array] => Array
(
[key_in_second] => value_with_key_in_second
[0] => value_in_second_array
)
)
这里发生的事情是,由于simple_value
没有键,因此将其分配给键0,但是随后又用lol
覆盖了它。 您还可以看到如何自动为value_in_second_array
分配键0。
因此,与json_encode
无关,您从未拥有PHP中的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.