Php 根据ID将数据库表数据拆分为不同的数组

Php 根据ID将数据库表数据拆分为不同的数组,php,mysql,arrays,codeigniter,Php,Mysql,Arrays,Codeigniter,我有下表 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 我的代码:- 控制器代码: 模态代码: 我想根据vehicle_id从不同

我有下表

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
我的代码:-

控制器代码:

模态代码:


我想根据vehicle_id从不同数组中的表中获取这些数据,并将它们全部推送到json_encode中。我如何做到这一点。是否有可能构造一个查询来执行此操作,或者我必须为数组中的单个车辆id存储执行此操作,然后将其添加到json编码中。请帮我找到解决办法

假设您在表行上循环:

$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
]
[
    'b'=>[0=>1]
]
此$a['b'][]=1附加到数组$a中键b处的数组,结果是:

[
    0=>1
]
[
    'b'=>[0=>1]
]

从抓取记录时选择*然后选择:-$final=[];而$row=mysqli\u fetch\u assoc$result{$final[$row['Vehicle\u id']][=$row;}echo json\u encode$final;。很抱歉,我忘了提到我正在使用CodeIgniter。如何在CodeIgnitery中做到这一点我们的解决方案是针对定制php的,但我使用的是ci框架。请检查代码并帮助我。请添加当前代码的输出。不转储$数据;$data=$this->location\u modal->get\u location之后;展示你得到了什么。也可以添加您需要的作为最终输出。我在Codeigniter中执行此操作,请务必解释。数组的赋值工作原理相同,Codeigniter与否。在当前代码中,foreach被注释掉,返回值为$data。你能把循环注释回并把返回值改为$final吗?那么输出的json是什么?