[英]How to get Table field names at top of result array
这是我的示例表:
这是我的查询:
SELECT * FROM table
上述查询的结果是:
Array
(
[0] => Array
(
[id] => 1
[name] => a
[country] => x
)
[1] => Array
(
[id] => 2
[name] => b
[country] => y
)
)
我需要在数组的第一个元素中获取字段名称。
预期结果数组为:
Array
(
[0] => Array
(
[id] => id
[name] => name
[country] => country
)
[1] => Array
(
[id] => 1
[name] => a
[country] => x
)
[2] => Array
(
[id] => 2
[name] => b
[country] => y
)
)
如何修改查询以获得此结果?
提前致谢...
SELECT 'id' id, 'name' name, 'country' country
UNION ALL
SELECT id, name, country FROM table
ORDER BY 'id' != id
显示问题通常应该在应用程序代码中处理,而不是 SQL 查询。 如果您将值放在一个数组中(例如,称为$results
),您可以使用此代码添加所需的条目:
array_unshift($results, array_combine(array_keys($results[0]), array_keys($results[0])));
print_r($results);
输出:
Array
(
[0] => Array
(
[id] => id
[name] => name
[country] => country
)
[1] => Array
(
[id] => 1
[name] => a
[country] => x
)
[2] => Array
(
[id] => 2
[name] => b
[country] => y
)
)
一种使用array_keys 、 array_combine和array_unshift 的方法。 如果我是你,我会将 SQL 结果作为$array
变量获取,并在php
端进行一些处理,如下面的查询端。
<?php
$array = [['id'=>1,'name'=>'a','country'=>'x'],['id'=>1,'name'=>'b','country'=>'y']];
$keys = array_keys($array[0]);
$first = array_combine($keys,$keys);
array_unshift($array,$first);
print_r($array);
?>
工作演示: https : //3v4l.org/IqZVk
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.