重新构造php中while循环创建的json数组,从数据库中获取值

重新构造php中while循环创建的json数组,从数据库中获取值,php,arrays,json,while-loop,Php,Arrays,Json,While Loop,每次while循环从数据库中获取数据时,我需要合并两个JSON数组。这是我目前得到的结构数组结果: {id=1,cid=1,fname=Lorna,vorname=King,gender=female,dob=1985,company=helsana,monthly_amount=150}, {id=2,cid=1,fname=Brian,vorname=King,gender=male,dob=2007,company=helsana,monthly_amount=100} 我需要它看起来像

每次while循环从数据库中获取数据时,我需要合并两个JSON数组。这是我目前得到的结构数组结果:

{id=1,cid=1,fname=Lorna,vorname=King,gender=female,dob=1985,company=helsana,monthly_amount=150},
{id=2,cid=1,fname=Brian,vorname=King,gender=male,dob=2007,company=helsana,monthly_amount=100}
我需要它看起来像这样:

{ 1={id:1, cid:1 fname=Lorna, vorname:King, gender:female, dob:1985, company:helsana, monthly_amount:100}, 2={id:2, cid:1 fname=Brian, vorname:King, gender:male, dob:2005, company:helsana, monthly_amount:150} }
使从数组中拾取值更容易。 以下是我正在使用的PHP代码:

<?php
include_once "conn.php";
$show= $mysqli->query("SELECT id,cid,fname,vorname,gender,dob,company,monthly_amount FROM family where cid = '1' ");
$arr = array();
while($row = $show->fetch_assoc()){
    $arr[] = $row;
}
$json_response = json_encode($arr, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
echo $str = substr($json_response, 1,-1);
?>

在PHP中创建数组时,您可以强制执行它:

$arr=array();
$index=1;//在需要计数的位置开始索引
而($row=$show->fetch_assoc()){
$arr[$index++]=$row;
}
或者,如果希望它与行的id匹配:

$arr = array();
while($row = $show->fetch_assoc()){
    $arr[$row['id']] = $row;
}

您使用
substr
的目的是什么?请显示您得到的实际json输出,因为您显示的示例不正确-它不是有效的json,并且不会从您正在显示的php代码生成。最后显示您如何尝试使用生成的json,因为我希望您当前的格式很容易被使用。谢谢,这正是我所需要的