Endeksi olarak auto_increment sütunu kullanarak, MySQL sütundan PHP dizi oluşturma

3 Cevap php

Much (satır kaydetmek yerine) this previous question, ben bir php dizide MySQL sütun saklamak istediğiniz gibi. Ancak, dizi indisleri veritabanının birincil anahtarının bu maç istiyorum.

Örneğin, aşağıdaki veritabanı için:

id name
1 Joe
2 Mary
9 Tony

$ Isim ['9 '] == "Tony"

Böyle bir şey mümkün mü?

Teşekkürler!

3 Cevap

, evet

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

Bir sarıcı kütüphane bu daha kolay, örneğin yapabilirsiniz ile ADODb,

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

Ben diziler olarak benim satır sonuçlarını aldıktan sonra, ben bu yöntemi kullanın:

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;
}

Ve yöntem çağrısı:

$mapOfData = convertArrayToMap($mysql_results, 'ID');