Php 是否可以使用json_encode检测密钥类型?

Php 是否可以使用json_encode检测密钥类型?,php,json,Php,Json,很难解释,但例如我有一个数组: $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', )

很难解释,但例如我有一个数组:

$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\u 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\u value',0'=>'lol'
具有相同的键。

PHP不关心数字0是否在引号中。它将其存储为数字0,与“第二个数组中的值”相同,因为它是第一个没有键的元素

基本上

array('0'=>'lol')
array(0=>'lol')
array('lol')
相同


您将看到simple_value diss出现,因为它被lol覆盖。

PHP不在乎数字0是否在引号中。它将其存储为数字0,与“第二个数组中的值”相同,因为它是第一个没有键的元素

基本上

array('0'=>'lol')
array(0=>'lol')
array('lol')
相同


您将看到simple_值显示,因为它被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);
这里发生的事情是,由于
simple\u value
没有键,它被分配了一个0键,但随后被随后出现的
lol
覆盖。您还可以查看第二个数组中的
值是如何自动分配一个0键的


因此,与
json\u encode
无关,您只是没有PHP中的数据。

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);
这里发生的事情是,由于
simple\u value
没有键,它被分配了一个0键,但随后被随后出现的
lol
覆盖。您还可以查看第二个数组
中的
值是如何自动分配一个0键的


因此,与
json\u encode
无关,您只是没有PHP中的数据。

检测类型。正如您所显示的数组,所有内容都用引号括起来,因此PHP会将其作为字符串读取,从而将其作为字符串传输到json。@DarylGill您不明白,我需要知道in
PHP
中的数组是否有键。检测类型。正如您所展示的数组,所有内容都用引号括起来,因此PHP会将其作为字符串读取,从而将其作为字符串传输到json。@DarylGill您不明白,我需要知道in
PHP
中的数组是否有键。