我正在尝试将查询结果排序为数组。
我有以下查询。
"select s.*, a.* from students left join addresses as a";
它返回
s.id
s.name
a.id
a.student_id
a.address
我想将上面的结果变成带有s和键的数组。
array(
"s"=>array("id"=>"value","name"=>"value")
,"a"=>array("id"=>"value","student_id"=>"value","address"=>"value)
)
我必须自己做功能还是有内部功能?
答案 0 :(得分:1)
如果没有其他原因,您必须自己执行此操作,而不是查询结果中的PHP中无法识别表。您只能获得列名称。
答案 1 :(得分:1)
除了:在你当前的代码中,我相信如果你选择行作为关联数组,s.id将被a.id覆盖。
现在,谈到一种可能的方法......
返回结果的一个方面是丢失列所来自的表。如果您发现自己想对结果集进行后处理,也许您可以通过重命名每个列来对其进行别名:
$query = "SELECT
s.id AS s_id
s.name AS s_name
a.id AS a_id
a.student_id AS a_student_id
a.address AS a_address
... ";
一旦你有了这个,你可以根据substr($ key,0,1)组织数据,并获得带有substr($ key,2)的基础列名。
一旦有了这些,你就可以在每一行内循环,以创建你想要使用的数据结构。