Sql 响应如下所示:名称|地点|日期|地址。行可以包含相同的名称、位置和日期,但地址每次都会更改。因此,我需要将此响应放入数组中,如下所示:
[0] => 'Name':'...',
'Locality':'...',
'Date':'...',
'Address': [0] => '...',
[1] => '...',
[2] => '...',
...
...
我尝试使用此代码,但不起作用=(
while($r = mysqli_fetch_assoc($q_res)){
$i = 0;
if(!in_array($r['watcher_name'], $daily_quests)){
$daily_quests[$i]['name'] = $r['name'];
$daily_quests[$i]['date'] = $r['date'];
$daily_quests[$i]['locality'] = $r['locality'];
}
else{
$daily_quests['address'] = $intrnal_addr[$i => $r['address']];
}
}
最佳答案
试试这个:
//Initialisation
$name = '';
$daily_quests = array();
$i = -1;
while($r = mysqli_fetch_assoc($q_res)){
//If the row is different than precedent
if (strcmp($r['name'], $name) != 0)
{
$i++;
$name = $r['name'];
$daily_quests[$i] = array();
$daily_quests[$i]['name'] = $r['name'];
$daily_quests[$i]['date'] = $r['date'];
$daily_quests[$i]['locality'] = $r['locality'];
$daily_quests[$i]['address'] = array();
}
// For each row, we must add address
$daily_quests[$i]['address'][] = $r['address']
}
但是,我们假设该名称是唯一的。与 id 进行比较更安全。
关于php - 解析sql响应数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750435/