我想要 php api 响应在一个数组列表中

i want php api responce in one array list

$MobileNo = $_POST['MobileNo']; 
$query = "SELECT * FROM tblLotProcessStatus WHERE MobileNo = $MobileNo" ; 
$result = sqlsrv_query($pdo,$query); 
while ($row = sqlsrv_fetch_array($result,(SQLSRV_FETCH_ASSOC)))
{ 
    if($row)
    { 
        $status=array(); 
        array_push($status,$row); 
        $response["status"] = $status; 
        $response["responce_code"] = 200; 
        $response["error_code"] = 0; 
        $response["error_msg"] = "status avialable"; 
        echo json_encode($response); 
    }

JSON 输出:

{
    "error": false,
    "status": [
        {
            "id": 1,
            "strPartyCode": "00000000",
            "intLotID": "257949",
            "MobileNo": "9879105144                                        ",
            "Messages": "Lot No : 15023  on Loop Ager/Poly started.,Style:PIGMENT PRINT",
            "status": 0,
            "Type": "PF ",
            "dtmDateTime": {
                "date": "2016-02-22 12:00:00.000000",
                "timezone_type": 3,
                "timezone": "Europe/Berlin"
            },
            "strLotNo": "N 15023",
            "strProcess": "Loop Ager/Poly,Style:PIGMENT PRINT",
            "strStatus": " started."
        }
    ],
    "responce_code": 200,
    "error_code": 0,
    "error_msg": "status avialable"
}{
    "error": false,
    "status": [
        {
            "id": 2,
            "strPartyCode": "00000000",
            "intLotID": "246654",
            "MobileNo": "9879105144                                        ",
            "Messages": "Lot No : 8191  on Compacting complited.,Style:DYED",
            "status": 0,
            "Type": "PF ",
            "dtmDateTime": {
                "date": "2015-03-09 15:00:00.000000",
                "timezone_type": 3,
                "timezone": "Europe/Berlin"
            },
            "strLotNo": "N 8191",
            "strProcess": "Compacting,Style:DYED",
            "strStatus": " complited."
        }
    ],
    "responce_code": 200,
    "error_code": 0,
    "error_msg": "status avialable"
}

我认为问题在于您将所有详细信息添加到一个新数组,然后每次都输出 json_encode()ed 数据。相反,您需要构建 1 个数据数组并在从数据库加载所有行后对其进行编码...

$response = ["responce_code" => 200, "error_code" => 0, 
    "error_msg" => "status avialable" ];
while ($row = sqlsrv_fetch_array($result,(SQLSRV_FETCH_ASSOC)))
{
    $response["status"][] = $row;
}
echo json_encode($response);

顺便说一句 - 某些数据中可能存在一些拼写错误(假设是英文拼写),也许

$response = ["response_code" => 200, "error_code" => 0, 
    "error_msg" => "status available" ];