2010-11-28 5 views
1

Je viens de rencontrer un problème où je crois que c'est la solution.Tableau multidimensionnel

Au moment où j'ai le code suivant:

function siteUsers() 
{ 
    global $database; 
    $q = "SELECT username, id FROM ".TBL_USERS.""; 
    return mysql_query($q, $this->connection); 
} 

function generateUserArray() 
{ 
    $u = array(); 
    $i = array(); 
    $result = $this->siteUsers(); 
    while($row=mysql_fetch_assoc($result)) 
    { 
     $u[] = $row['username']; 
     $i[] = $row['id']; 
    } 
    return $u, $i; 
} 

Comme vous pouvez le voir, quand je vais ensuite sur l'utilisation foreach, u et je me fendit. Y at-il de toute façon que je puisse les garder ensemble?

foreach ($u as $username) { 
    echo"<option value='$i'>$username</option>"; 
} 

Ce dont j'ai besoin la valeur de l'option pour être l'id et la valeur visuelle pour être le nom d'utilisateur. Est-ce possible? Merci

Répondre

4

utiliser un tableau associatif qui relie l'ID au nom d'utilisateur. Je suppose que les ID sont uniques.

$users = array(); 
while($row=mysql_fetch_assoc($result)) 
{ 
    $users[$row['id']] = $row['username']; 
} 
return $users; 

Puis:

foreach ($users as $id => $username) 
{ 
    echo "<option value='$id'>$username</option>"; 
} 
+0

clouées, a parfaitement fonctionné. Vraiment vraiment utile et quelque chose qui était nécessaire pour m'empêcher d'avoir à exécuter une requête encore et encore! – sark9012

0
foreach($u as $idx => $username) 
{ 
    echo"<option value='".$i[$idx]."'>$username</option>"; 
} 

en supposant la même longueur et que la fonction php peut retourner deux valeurs: \