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;