如何在PHP中订购一个数组,该数组将传递给Android应用程序 - 出现额外的“ [ ”


How to order an Array in PHP that will be than passed to an Android App - Extra " [ " appearing

在Android应用程序中阅读之前,我在PHP中排序和数组时遇到问题。

观察:

1 - 我无法在从数据库中读取数组时对数组进行排序,因为我正在考虑作为第一个标准的信息是基于时间的。

2 - 我能够将信息传递给Android应用程序,并且没有问题。

这是原始代码。

while ($row2 = mysqli_fetch_array($result2)) {
        //array temporário      
        $cidade = $row2['CidadeHospital'];
        $estado = $row2['EstadoHospital'];
        $localidade = $cidade . " - " . $estado;

        if (validacao_apontamento($row2['d_h_ultima_lotacao']) == 'valido') {
            if ($row2['ultima_lotacao'] == 1) {
                $lotacao = 'vazio';
                $ordem = 1;
            } else {
                if ($row2['ultima_lotacao'] == 2) {
                    $lotacao = 'pouco cheio';
                    $ordem = 2;
                } else {
                    if ($row2['ultima_lotacao'] == 3) {
                        $lotacao = 'muito cheio';
                        $ordem = 3;
                    } else {
                        if ($row2['ultima_lotacao'] == 4) {
                            $lotacao = 'lotado';
                            $ordem = 4;
                        } else {
                            $lotacao = 'sem registro';
                            $ordem = 9;
                        }
                    }
                }
            }
        } else {
            $lotacao = 'sem registro';
            $ordem = 9;
        }
        $hospital = array("pid" => $row2['PID'], "nome" => $row2['NomeHospital'], "localidade" => $localidade, "lotacao" => $lotacao, "ordem" => $ordem);
        array_push($response["hospitais"], $hospital);
    }

这是应用程序读取的响应。

{"hospitais":[{"pid":"1","nome":"Madre Teresa","localidade":"Belo Horizonte - MG","lotacao":"sem registro","ordem":9}, .... , {"pid":"230","nome":"Fel'u00edcio Rocho","localidade":"Belo Horizonte - MG","lotacao":"pouco cheio","ordem":2}],"areadebusca":"N'u00e3o existem hospitais cadastrados pr'u00f3ximos, exibidos todos do Estado.","successo":1}

我尝试的解决方案是这样的:

while ($row2 = mysqli_fetch_array($result2)) {
        //array temporário      
        $cidade = $row2['CidadeHospital'];
        $estado = $row2['EstadoHospital'];
        $localidade = $cidade . " - " . $estado;

        if (validacao_apontamento($row2['d_h_ultima_lotacao']) == 'valido') {
            if ($row2['ultima_lotacao'] == 1) {
                $lotacao = 'vazio';
                $ordem = 1;
            } else {
                if ($row2['ultima_lotacao'] == 2) {
                    $lotacao = 'pouco cheio';
                    $ordem = 2;
                } else {
                    if ($row2['ultima_lotacao'] == 3) {
                        $lotacao = 'muito cheio';
                        $ordem = 3;
                    } else {
                        if ($row2['ultima_lotacao'] == 4) {
                            $lotacao = 'lotado';
                            $ordem = 4;
                        } else {
                            $lotacao = 'sem registro';
                            $ordem = 9;
                        }
                    }
                }
            }
        } else {
            $lotacao = 'sem registro';
            $ordem = 9;
        }
        $hospital [] = array("pid" => $row2['PID'], "nome" => $row2['NomeHospital'], "localidade" => $localidade, "lotacao" => $lotacao, "ordem" => $ordem);
    }
    $sort = array();
    foreach ($hospital as $k => $v) {
        $sort['ordem'][$k] = $v['ordem'];
        $sort['nome'][$k] = $v['nome'];
    }
    array_multisort($sort['ordem'], $sort['nome'], SORT_ASC, $hospital);
    array_push($response["hospitais"], $hospital);

我现在得到的答案是:

{"hospitais":[[{"pid":"2","nome":"Lifecenter","localidade":"Belo Horizonte - MG","lotacao":"vazio","ordem":1}, .... , {"pid":"10","nome":"Vila da Serra","localidade":"Nova Lima - MG","lotacao":"sem registro","ordem":9}]],"areadebusca":"N'u00e3o existem hospitais cadastrados pr'u00f3ximos, exibidos todos do Estado.","successo":1}

如您所见,在每个数组的开头,在条目之前有一个额外的" [

"。
1st - {"hospitais":[{"pid": ....
2nd - {"hospitais":[[{"pid": .... 

问题是,如果秒"["上的aditits,我的APP现在无法读取响应。

在我尝试的解决方案上,而不是使用

array_push($response["hospitais"], $hospital);

我用了

$response = array ('hospitais' => $hospital);