从PHP中的JSON格式中仅删除编号键,而不删除值

从PHP中的JSON格式中仅删除编号键,而不删除值,php,json,Php,Json,我正在用PHP构建一个JSON,而且密钥不能被引用, 因为我需要把它导入Neo4j 我用这个在PHP中构建它,在一个循环中: $contacts[$contact_key]["addr"][$addr_key]["zipcode"] = $zip_match[0]; $contacts[$contact_key]["addr"][$addr_key]["housenumber"] = $house_match[0]; 最后,我使用: $reencoded = json_encode($cont

我正在用PHP构建一个JSON,而且密钥不能被引用, 因为我需要把它导入Neo4j

我用这个在PHP中构建它,在一个循环中:

$contacts[$contact_key]["addr"][$addr_key]["zipcode"] = $zip_match[0];
$contacts[$contact_key]["addr"][$addr_key]["housenumber"] = $house_match[0];
最后,我使用:

$reencoded = json_encode($contacts, JSON_UNESCAPED_UNICODE);        
$reencoded = preg_replace('/"([^"]+)"\s*:\s*/', '$1:', $reencoded);
这是JSON字符串结果的一部分:

{addr:{1:{zipcode:"1315 GN",housenumber:"1229P;"}}
但是我不能有像
1:
2:
等这样的编号键。 因为这在Neo4j中给了我一个错误

我更希望实现这种格式:

{addr: [{zipcode:"1315 GN",housenumber:"1229P"}]
如何为联系人列出地址列表,
没有编号的键?

不要尝试从JSON中删除从
$addr\u key
中获得的数字键,只需先不包含它们即可

对于循环中的代码,可以使用
[]
添加地址,如下所示:

$address = ['zipcode' => $zip_match[0], 'housenumber' => $house_match[0]];
$contacts[$contact_key]["addr"][] = $address;

不要试图从JSON中删除从
$addr\u key
中获得的数字键,只需一开始就不要包含它们

对于循环中的代码,可以使用
[]
添加地址,如下所示:

$address = ['zipcode' => $zip_match[0], 'housenumber' => $house_match[0]];
$contacts[$contact_key]["addr"][] = $address;

我认为如果您从0开始
$contact\u key
,并将其递增,那么JSON中就不会出现数字。但是没有引号的键不是有效的JSON,那么Neo4j在做什么呢?我想如果你在0处开始
$contact_key
,然后递增它,那么JSON中就没有数字了。但是非引号的键不是有效的JSON,那么Neo4j在做什么呢?谢谢,代码现在看起来更干净了,但我仍然得到了数字。这不是因为$contacts[$contact\u key][“addr”]已经填充/不是空的吗?当您使用
[]
添加地址时,PHP将自动为
addr
数组创建基于零的整数索引。当您对这样的数组进行
json\u编码时,您应该得到一个json数组(
[]
),而不是一个json对象(
{}
)。键不应该出现在JSON中。我现在使用:
$contacts[$contact\u key][“addrs”][
来拥有一个从零开始的整数索引,在循环开始时我会:
unset($contacts[$contact\u key][“addr”])我现在在JSON结果中有一个空的
地址:[]
。但我想我现在可以很开心了。谢谢,代码现在看起来更干净了,但我仍然能得到数字。这不是因为$contacts[$contact\u key][“addr”]已经填充/不是空的吗?当您使用
[]
添加地址时,PHP将自动为
addr
数组创建基于零的整数索引。当您对这样的数组进行
json\u编码时,您应该得到一个json数组(
[]
),而不是一个json对象(
{}
)。键不应该出现在JSON中。我现在使用:
$contacts[$contact\u key][“addrs”][
来拥有一个从零开始的整数索引,在循环开始时我会:
unset($contacts[$contact\u key][“addr”])我现在在JSON结果中有一个空的
地址:[]
。但我想我现在可以快乐了。