CodeIgniter индексированный массив по запросу - PullRequest
1 голос
/ 24 октября 2011

Как я могу получить индексированный массив после запроса MySQL? Или есть какой-либо способ конвертировать $this->db->get() в ресурс MySQL? Или конвертировать ассоциативный массив в индексированный?

Ответы [ 3 ]

5 голосов
/ 24 октября 2011

PHP имеет функцию array_values(), которая будет возвращать массив только значений.

http://it.php.net/manual/en/function.array-values.php

0 голосов
/ 12 октября 2018

Пример преобразования codeigniter result_array в индексированный массив:

$query = $this->db->query("SELECT `tag_id` FROM `tags`");
$arr = $query>result_array();
print_r($arr); //codeigniter default result array

//Output:

Array
(
 [0] => Array
    (
        [tag_id] => 1
    )

 [1] => Array
    (
        [tag_id] => 3
    )
)

Теперь, если вы хотите преобразовать вышеуказанный массив в индексированный массив, вам нужно использовать функцию array_column(), которая преобразует ассоциативный массив в индексированный массив, используя ключ массива в качестве аргумента, см. Ниже, например:

$query = $this->db->query("SELECT `tag_id` FROM `tags`");
$tags = $query>result_array();
$arr = array_column($tags, "tag_id");
print_r($arr); //converted indexed array

//Output:

Array
(
 [0] => 1

 [1] => 3
)
0 голосов
/ 24 октября 2011

Похоже, вы используете PHP CodeIgniter. Реализация БД CodeIgniter не поддерживает индексированные массивы результатов, вам приходится выбирать между объектом или ассоциативным массивом.

Это сделано для того, чтобы сделать ваши запросы более удобными в обслуживании, поскольку возвращаемые числовые индексы сложнее отлаживать и поддерживать.

Руководство пользователя Code Igniter - результаты базы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...