Как получить имена полей таблицы в верхней части массива результатов - PullRequest
0 голосов
/ 26 марта 2020

Вот мой Пример таблицы :

enter image description here

Вот мой Запрос :

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
        )
)

Как мне изменить Запрос , чтобы получить этот результат?

Заранее спасибо ...

Ответы [ 3 ]

1 голос
/ 26 марта 2020

Проблемы с отображением обычно должны решаться в коде приложения, а не 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

1 голос
/ 26 марта 2020

Один из способов сделать это с 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);
?>

WORKING DEMO: https://3v4l.org/IqZVk

1 голос
/ 26 марта 2020
SELECT 'id' id, 'name' name, 'country' country
UNION ALL
SELECT id, name, country FROM table
ORDER BY 'id' != id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...