使用auto_increment列作为索引,从MySQL列创建PHP数组

时间:2010-01-15 22:26:42

标签: php mysql

很像this previous question,我希望在php数组中存储一个MySQL列(而不是按行存储)。但是,我希望数组索引与数据库的主键匹配。

例如,对于以下数据库:

  

id name
   1乔
   2玛丽    9托尼

     

$ name ['9'] ==“Tony”

这样的事情可能吗?

谢谢!

4 个答案:

答案 0 :(得分:2)

$result = mysql_query($q);
while ($row = mysql_fetch_assoc($result)) {
  $array[$row["id"]] = $row["name"];
}

答案 1 :(得分:1)

是,

$names = array();
foreach ($rows as $r) {
   $names[$r['id']] = $r['name'];
}

答案 2 :(得分:0)

包装器库可以使这更容易,例如与ADODb

$array = $db->GetAssoc("select id,name from mytable");

答案 3 :(得分:0)

将行结果作为数组后,我使用此方法:

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