Создать массив PHP из столбца MySQL, используя столбец auto_increment в качестве индекса - PullRequest
0 голосов
/ 16 января 2010

Так же, как этот предыдущий вопрос , я хочу сохранить столбец MySQL в массиве php (в отличие от хранения по строке). Однако я хочу, чтобы индексы массива совпадали с индексами первичного ключа базы данных.

Например, для следующей базы данных:

идентификатор
1 Джо
2 Мэри
9 Тони

$ name ['9'] == "Тони"

Возможна ли такая вещь?

Спасибо!

Ответы [ 4 ]

2 голосов
/ 16 января 2010
$result = mysql_query($q);
while ($row = mysql_fetch_assoc($result)) {
  $array[$row["id"]] = $row["name"];
}
1 голос
/ 16 января 2010

да,

$names = array();
foreach ($rows as $r) {
   $names[$r['id']] = $r['name'];
}
0 голосов
/ 16 января 2010

Как только я получу результаты строк в виде массивов, я использую этот метод:

function convertArrayToMap(&$list, $attribute, $use_reference=FALSE) {
    $result = array();
    for ($i=0; $i < count($list); $i++) {
        if ($use_reference) $result[$list[$i][$attribute]] = &$list[$i];
        else $result[$list[$i][$attribute]] = $list[$i];
    }
    return $result;
}

И вызов метода:

$mapOfData = convertArrayToMap($mysql_results, 'ID');
0 голосов
/ 16 января 2010

Библиотека-обёртка может сделать это проще, например. с ADODb :

$array = $db->GetAssoc("select id,name from mytable");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...