PHP 2-мерный массив получить значение?
$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?
}
}
2 ответа
Решение
Кажется, вы используете идентификатор пользователя в качестве индекса пользователя в массиве. Если это так, вы не должны использовать 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";
}
Вы уже используете идентификатор для индексации массива.
Просто используйте:
if (isset($users[$usertofind])) {
$user = $users[$usertofind];
echo $user['age'];
echo $user['dob'];
echo $user['gender'];
}
РЕДАКТИРОВАТЬ: Добавлена проверка isset и уменьшено количество обращений к одному и тому же элементу массива