Php 需要在一个JSON中合并多行
如何从中获得:Php 需要在一个JSON中合并多行,php,mysql,arrays,json,merge,Php,Mysql,Arrays,Json,Merge,如何从中获得: {"color":[{"id":"41","name":"red"}]} {"color":[{"id":"19","name":"blue"}]} ... 这个东西是用php和json编码的 {"color":[{"id":"41","name":"red"},{"id":"19","name":"blue"},...]} 数据来自DB,我使用以下代码: $json = array(); $jsonRow= array(); while ($row = mys
{"color":[{"id":"41","name":"red"}]}
{"color":[{"id":"19","name":"blue"}]}
...
这个东西是用php和json编码的
{"color":[{"id":"41","name":"red"},{"id":"19","name":"blue"},...]}
数据来自DB,我使用以下代码:
$json = array();
$jsonRow= array();
while ($row = mysqli_fetch_array($getResult)) {
$jsonRow = array(
$row['color'] => array(
array(
"id" => $row['id'],
"name" => $row['name'],
)
)
);
array_push($json,$jsonRow);
}
试试这个:
$json = array();
$jsonRow= array();
while ($row = mysqli_fetch_array($getResult)) {
$jsonRow[] = array(
"id" => $row['id'],
"name" => $row['name'],
);
}
// color can be $row['color']
// If its constant, I am not sure if its a good idea to keep in the loop.
$json = array("color" => $jsonRow);
echo json_encode($json);
这个怎么样
$json = array();
$colors= array();
while ($row = mysqli_fetch_array($getResult)) {
array_push($colors,
array(
"id" => $row['id'],
"name" => $row['name'],
)
);
$json = array( "colors" => $colors);
}
错误的这将把数组转换成字符串。使用json不能做到这一点。json可以很好地处理嵌套数组/对象。您是对的,这个答案是根据OP{color:[{{id:41,name:red},{id:19,name:blue},…]}所需的输出得出的。我怀疑OP建议的json_编码能带来这样的输出,所以。。。
$arr= array();
$jsonRow= array();
while ($row = mysqli_fetch_array($getResult)) {
$jsonRow = array(
"id" => $row['id'],
"name" => $row['name'],
);
$arr[]=$jsonRow;
}
$json = json_encode(array('color'=>$arr));
echo $json;