在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);