如何使用php将这个多维数组转换为正确的JSON?
我有一个包含多个图书条目的数组。我存储每个books元素,每个元素中都有其唯一的id作为键。我正在努力从中生成正确的JSON 当我对数组进行json_编码时,它只生成每个子数组json,而不是按键对元素进行分组,而是按元素所在的数组进行分组 这是我的多维数组如何使用php将这个多维数组转换为正确的JSON?,php,xml,arrays,json,multidimensional-array,Php,Xml,Arrays,Json,Multidimensional Array,我有一个包含多个图书条目的数组。我存储每个books元素,每个元素中都有其唯一的id作为键。我正在努力从中生成正确的JSON 当我对数组进行json_编码时,它只生成每个子数组json,而不是按键对元素进行分组,而是按元素所在的数组进行分组 这是我的多维数组 $booksarray = array("book title" => array(), "book isbn" => array(), "book borrowedcount" => array()); 我完全不知道如
$booksarray = array("book title" => array(), "book isbn" => array(), "book borrowedcount" => array());
我完全不知道如何从每个子数组中提取元素,然后将它们组合在一起,以便它们输出类似
{"results":
{"course": "CC120", "books":
{ "book":
[{"id": "12345", "title": "javascript", "isbn": "123456789", "borrowedcount": "45"}] } }
我的XML输出如下
<results>
<course>cc120</course>
<books>
<book id="9876" title="html" isbn="000001234" borrowedcount="56">
<book id="12345" title="javascript" isbn="123456789" borrowedcount="45">
<book id="222" title="php5" isbn="55555555" borrowedcount="22">
<book id="23788" title="XML" isbn="99988877" borrowedcount="5">
</books>
</results>
cc120
任何帮助都将不胜感激您的阵列似乎不是您首先希望的格式。一旦php数组的结构与您希望json的结构相同,json_编码就可以工作了 e、 g
看起来您的数组的格式与您希望的格式不符。一旦php数组的结构与您希望json的结构相同,json_编码就可以工作了 e、 g
我认为问题可能在于您构建阵列的方式。你能改变它吗 我建议采用如下数组结构:
$booksarray = array(
"9876" => array(
"title" => "html",
"isbn" => "000001234",
"borrowedcount" => "56"
),
"12345" => array(
"title" => "javascript",
"isbn" => "123456789",
"borrowedcount" => "45"
)
);
json_encode()然后应该以您想要的格式输出
例如
我认为问题可能在于您构建阵列的方式。你能改变它吗 我建议采用如下数组结构:
$booksarray = array(
"9876" => array(
"title" => "html",
"isbn" => "000001234",
"borrowedcount" => "56"
),
"12345" => array(
"title" => "javascript",
"isbn" => "123456789",
"borrowedcount" => "45"
)
);
json_encode()然后应该以您想要的格式输出
例如
将数组转换为所需格式,然后
json\u encode()
it:
$newArray = array();
foreach($booksarray["book title"] as $key => $title)
{
$newArray[] = array(
'id' => $key,
'title' => $title,
'isbn' => $booksarray["book isbn"][$key],
'borrowedcount' => $booksarray["book borrowedcount"][$key]
);
}
echo json_encode($newArray);
将数组转换为所需格式,然后
json\u encode()
it:
$newArray = array();
foreach($booksarray["book title"] as $key => $title)
{
$newArray[] = array(
'id' => $key,
'title' => $title,
'isbn' => $booksarray["book isbn"][$key],
'borrowedcount' => $booksarray["book borrowedcount"][$key]
);
}
echo json_encode($newArray);
json\u encode()
不起作用吗?最简单的方法是将php数组转换成正确的格式,然后进行json_编码。您可以向我们展示子数组吗?json_编码()
不起作用吗?最简单的方法是将php数组转换成正确的格式,然后进行json_编码。你能告诉我们子数组吗?我认为最好使用ISBN作为循环的“权威”源。谢谢你,这非常有效。我的阵列知识肯定需要工作,但非常感谢您的回答@NathanBarton没问题:)@prodigitalson除非有没有书名但有ISBN的书,否则不会有什么不同。在任何情况下,更好的解决方案是最初将其解析为所需的格式,而不是解析为三个数组然后重新格式化。我认为最好使用ISBN作为循环的“权威”源。谢谢,这非常有效。我的阵列知识肯定需要工作,但非常感谢您的回答@NathanBarton没问题:)@prodigitalson除非有没有书名但有ISBN的书,否则不会有什么不同。在任何情况下,更好的解决方案是最初将其解析为所需的格式,而不是解析为三个数组然后重新格式化。我误读了您想要的输出格式,jchapa的响应可能是实现这一点的最干净的方法。我误读了您想要的输出格式,jchapa的回应可能是实现这一目标最干净的方式。