какой функцией для работы с массивами можно заменить foreach в таком коде
$users = array(
array(
'login' => 'test',
'pass' => 'aaa',
'email' => 'test@aaa'
),
array(
'login' => 'admin',
'pass' => 'aaa',
'email' => 'admin@aaa'
),
);
$login_exist = false;
foreach ($users as $val) {
if ($val['login'] === $login) {
$login_exist = true;
break;
}
}
Можно так:
$login = 'test';
print_r(in_array($login, array_column($users, 'login')));
http://sandbox.onlinephpfunctions.com/code/ab8dfbba5d6af384347b145e19aa8e25fd01e88c
Но я считаю, что проще одним циклом. Потому что в схеме выше будет аж два цикла. Но зато кода меньше
Можно вот так:
$needle = 'qwe';
$result = !empty(array_filter($users,
function ($innerArray) use ($needle)
{
return ($innerArray['login'] == $needle);
}));
var_dump((bool)$result);
Пример.
Взято отсюда.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники