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

时间:2016-09-14 17:31:27

标签: 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($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"}]

如何为联系人列出地址列表, 没有数字键?

1 个答案:

答案 0 :(得分:2)

不要尝试从JSON中删除$addr_key中的数字键,而是不要将它们包括在内。

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

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