Как узнать самый верхний индекс элемента массива?
Есть массив:
$users = [
[
'email' => '[email protected]',
'name' => 'Игнат',
'password' => '$2y$10$OqvsKHQwr0Wk6FMZDoHo1uHoXd4UdxJG/5UDtUiie00XaxMHrW8ka'
],
[
'email' => '[email protected]',
'name' => 'Леночка',
'password' => '$2y$10$bWtSjUhwgggtxrnJ7rxmIe63ABubHQs0AS0hgnOo41IEdMHkYoSVa'
],
[
'email' => '[email protected]',
'name' => 'Руслан',
'password' => '$2y$10$2OxpEH7narYpkOT1H5cApezuzh10tZEEQ2axgFOaKW.55LxIJBgWW'
]
];
Как например узнать какой индекс у элемента со значением email: "[email protected]"
Ответы (3 шт):
Автор решения: rusgeli
→ Ссылка
Перебираете элементы массива через foreach. Если у очередного элемента e-mail совпадает с искомым - записываете/выводите и обрываете цикл
Что-то типа такого:
foreach ($users as $key => $user) {
if ($user['email'] === '[email protected]') {
echo $key;
break;
}
}
Автор решения: Алексей Шиманский
→ Ссылка
Можно в одну строку
$key = array_search('[email protected]', array_column($users, 'email'));
echo $key;
Одним циклом быстрее. Но это будет заметно на очень существенном объёме данных.
Автор решения: splash58
→ Ссылка
можно воспользоваться array_filter
$res = array_filter($users, function($x) { return $x['email']=='[email protected]';} );
if($res) {
echo(key($res));
}
else {
echo 'Key not found';
}