0

我有一个数组,

either
eight
einstein
eighth

当我使用 json_encode 将其转换为 json 时,我得到以下输出,

["either","eight","einstein","eighth"]

但我想有一个像下面这样的结构

[
    {"name":"either"},
    {"name":"eight"},
    {"name":"einstein"},
    {"name":"eighth"}
]

如何获得这样的json?php中有什么函数可以实现这个功能吗?

4

2 回答 2

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);
于 2013-11-15T00:39:36.133 回答
0

你不能像那样重新定义数组键,顺便说一下,它会是 JavaScript 中的一个对象,但你可以有一个带有这些子元素的名称数组:

<?php

$array = array(
    "name" => array(
        "either",
        "eight",
        "einstein",
        "eighth"
    )
);

Echo json_encode($array);

?>

演示:https ://eval.in/68295

或者,每一行都可以是它自己的带有名称键的数组。

于 2013-11-15T00:43:46.763 回答