2011-02-11 25 views
0
$useridtofind= 123; 

$users=array(); 

while ($data = mysql_fetch_array ($result)) 
{ 

     $userid = $data['userid']; 
    $age = $data['age']; 
    $gender = $data['gender']; 
    $dob = $data['dob']; 

    $users[$userid] => array(
     'age'=> $age, 
     'gender'=> $gender, 
     'dob' => $dob 
     ) 
} 


$useridtofind=123; 

for($v=0; $v< count($users); $v++) 
{ 
    if($users[$v]== $useridtofind) 
    { 
     //how to go with grab value of age, gender, dob here?  
    } 
} 

答えて

0

アレイ内のユーザーのインデックスとしてユーザーIDを使用しているようです。このような場合は、あなたがforループを使用すべきではない、あなただけのキーが配列内に存在するかどうかを確認する必要があります

$useridtofind = 123; 

if (array_key_exists($useridtofind, $users)) { 
    $user = $users[$useridtofind]; 

    echo "User exists: ", $user['age'], '/', $user['gender'], '/', $user['dob']; 
} else { 
    echo "User doesn't exist"; 
} 
2

あなたは既にインデックスに配列をIDを使用しています。

だけ使用します。

if (isset($users[$usertofind])) { 
    $user = $users[$usertofind]; 
    echo $user['age']; 
    echo $user['dob']; 
    echo $user['gender']; 
} 

EDIT:追加されましたISSETチェックをし、同じ配列要素

を参照する回数を削減