2010-01-15 40 views

回答

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

請注意,您需要初始化數組在$ array = array()的while循環之前;或者它會在第一行發出通知。另外,請不要將變量命名爲「$ array」。 – 2010-01-15 22:33:32

+1

然後假裝它被稱爲$ foo。 – Randy 2010-01-15 22:35:09

+0

或者可能$喬丹:) – 2010-01-15 22:37:07

1

是,

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

包裝庫可以使這更容易,例如與ADODb

$array = $db->GetAssoc("select id,name from mytable"); 
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');