我有一个数组,
either
eight
einstein
eighth
当我使用json_encode将其转换为json时,我得到以下输出,
["either","eight","einstein","eighth"]
但我希望有一个像下面这样的结构
[
{"name":"either"},
{"name":"eight"},
{"name":"einstein"},
{"name":"eighth"}
]
如何获得这样的json?是否有任何功能在PHP中实现此功能?
答案 0 :(得分:4)
在转换之前,您只需使用array_map
按一下阵列。你想从这个结构(用PHP术语):
[
"either",
"eight",
"einstein",
"eighth"
]
到此:
[
["name" => "either"],
["name" => "eight"],
["name" => "einstein"],
["name" => "eighth"],
]
一旦你知道必须做什么,做起来很容易:
$arr = ["either","eight","einstein","eighth"];
$arr = array_map(function($v) { return ['name' => $v]; }, $arr);
echo json_encode($arr);
答案 1 :(得分:0)
你不能像这样重新定义数组键,顺便说一句它是JavaScript中的一个对象,但你可以拥有一个包含这些子项的名字数组:
<?php
$array = array(
"name" => array(
"either",
"eight",
"einstein",
"eighth"
)
);
Echo json_encode($array);
?>
或者,每行可以是带有名称键的数组。