繁体   English   中英

如何在结果数组顶部获取表字段名称

[英]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
        )
)

3v4l.org 上的演示

一种使用array_keysarray_combinearray_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM