在php中将一个简单的数组转换为json

时间:2013-11-15 00:34:16

标签: php json arrays

我有一个数组,

either
eight
einstein
eighth

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

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

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

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

如何获得这样的json?是否有任何功能在PHP中实现此功能?

2 个答案:

答案 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);

?>

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

或者,每行可以是带有名称键的数组。