我有下表
Vehicle_id lat long
A11 25.45 98.01
A11 26.45 98.02
B12 25.75 98.03
A11 25.25 98.04
B12 27.45 98.05
A11 25.35 98.06
C11 28.45 98.07
我的代码: -
控制器代码:
public function get_location_data(){
$data = $this->location_modal->get_location();
$final = [];
/*foreach($data as $value){
$final[$value['vehicle_id']] [] = $value;
}*/
echo json_encode($data);
}
模态代码:
function get_location() {
$this->db->select('*');
$this->db->from('gps_data');
$result = $this->db->get();
return $result->result();
}
我希望从基于vehicle_id的不同数组中的表中获取此数据,并将它们全部推送到json_encode中。我该如何做到这一点。是否可以构造一个可以执行此操作的查询,或者我是否必须为数组中的单个vehicle_id存储执行此操作,然后将其添加到json编码。请帮我解决一下。
答案 0 :(得分:1)
假设你循环遍历表行:
$vehicles = [];
while($row = $db->fetch_assoc())
{
$vehicles[$row['Vehicle_id']][]=$row;
}
您可以Vehicle_id
作为$vehicles
的数组键,并将行添加到其中。
这将导致这个json:
{
"A11": [
{
"Vehicle_id": "A11",
"lat": 25.45,
"long": 98.01
},
{
"Vehicle_id": "A11",
"lat": 26.45,
"long": 98.02
},
...
],
"B12": [
{
"Vehicle_id": "A11",
"lat": 25.75,
"long": 98.03
},
...
]
}
<强>阐释:强>
语法$a[] = 1
将1
附加到数组$a
,从而导致:
[
0=>1
]
此$a['b'][] = 1
会附加到数组b
中键$a
处的数组,从而导致:
[
'b'=>[0=>1]
]