2010-11-28 33 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の上に行くと、私は離れて分割取得するときに、見ることができるように。 私はそれらを一緒に保つことができたとにかくありますか?

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

私はオプションの値がIDであり、視覚的な値がユーザー名である必要があります。 これは可能ですか?等しい長さとそのPHP関数を仮定

おかげ

答えて

4

\ユーザ名にIDをリンク連想配列を使用します。ここではIDが一意であると仮定しています。その後

$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

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

は、2つの値を返すことができる。