2010-11-28 20 views
1

Ich bin gerade auf ein Problem gestoßen, wo ich glaube, dass dies die Lösung ist.Multidimensionales Array

Im Moment habe ich den folgenden Code haben:

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

Wie Sie sehen können, wenn ich dann auf den Einsatz foreach gehen, die u und i gespalten bekommen. Gibt es trotzdem, dass ich sie zusammenhalten könnte?

Was ich brauche, ist der Optionswert, die ID und der visuelle Wert der Benutzername zu sein. Ist das möglich? Dank

Antwort

4

eine assoziative Array verwenden die ID zu dem Benutzernamen verknüpft. Ich nehme an, hier sind die IDs eindeutig.

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

Dann:

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

Nailed auf, funktionierte perfekt. Wirklich sehr hilfreich und etwas, das nötig war, damit ich nicht immer wieder eine Anfrage stellen musste! – sark9012

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

gleich lang sind und die PHP-Funktion unter der Annahme, können zwei Werte zurück: \

Verwandte Themen