В PHP возможно ли получить одномерный массив с использованием PDO? - PullRequest
7 голосов
/ 27 октября 2011

Кажется, что это должно быть (и, вероятно, так) тривиально. У меня простой запрос:

SELECT Name From User;

Когда я запускаю запрос, используя этот код:

$rows = $preparedStatement->fetchAll(PDO::FETCH_ASSOC);

$ Строки выглядят так:

Array ( [0] => Array ( [Name] => Doug ) [1] => Array ( [Name] => John ) )

Есть ли простой способ заставить массив выглядеть примерно так:

Array( Doug, John)

Ответы [ 2 ]

22 голосов
/ 27 октября 2011

Использование константы PDO :: FETCH_COLUMN:

$columnNumber = 0;
$rows = $preparedStatement->fetchAll(PDO::FETCH_COLUMN, $columnNumber);

Таким образом, вы получите именно то, что предложили.

Вы также можете сделать следующее:

$columnNumber = 0;
$rows = $preparedStatement->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_UNIQUE, $columnNumber);

Таким образом, вы получите массив с уникальными значениями.

Источник: http://www.php.net/manual/en/pdostatement.fetchall.php

2 голосов
/ 27 октября 2011

Я думаю, что правильный ответ дал Джейсон Эрик , в случае, если вам нужно сгладить то, что вы получили (не очень рекомендуется), это сделает это:

$flat = reset((call_user_func_array('array_merge_recursive', $rows)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...