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 и уменьшено количество обращений к одному и тому же элементу массива

Другие вопросы по тегам