2010-11-28 4 views
1

Только что столкнулся с проблемой, когда я считаю, что это решение.Многомерный массив

На данный момент у меня есть следующий код:

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

Как вы можете видеть, когда я затем на использование Еогеасп, и- и я получаю раскололся. Есть ли вообще, что я мог бы держать их вместе?

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

Что мне нужно, значение параметра должно быть идентификатором и визуальным значением для имени пользователя. Возможно ли это? Благодаря

ответ

4

Используйте ассоциативный массив, связывающий идентификатор имени пользователя. Я предполагаю, что идентификаторы уникальны.

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

Тогда:

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

пригвожден, работал отлично. На самом деле очень полезно и что-то, что необходимо для того, чтобы заставить меня снова и снова запускать запрос! – sark9012 2010-11-28 18:12:18

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

предполагая одинаковую длину, и функция PHP может вернуть два значения: \

Смежные вопросы