json_encode按键

时间:2018-04-05 10:47:53

标签: php arrays json

例如我有php数组:

$arr = ["a"=>[],"b"=>[]];

我需要json对象为:

{"a":[],"b":{}}

我有一个巨大的数组,应用了json_encode函数。如果我将选项设置为json_encode($data,JSON_FORCE_OBJECT),那么它会使每个[]对象变为{}对象,这是非常不受欢迎的。

我可以应用特定于阵列键的编码选项吗?因为一个人应该能够从php数组中生成{"a":[],"b":{}},这是有效的json。

1 个答案:

答案 0 :(得分:4)

您可以使用anonymous classes,例如(DEMO):

$arr = ["a"=>[],"b"=>new class{}];

通过这种方式,您可以将一些键集中转换为对象,将其他键转换为数组。

您还可以使用类型转换(object),例如(DEMO):

$arr = ["a"=>[],"b"=>(object)[]];

我个人更喜欢类型转换方法。

相关问题