Функция для работы с массивами PHP

155
27 декабря 2017, 21:34

какой функцией для работы с массивами можно заменить 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;
        }
    }
Answer 1

Можно так:

$login = 'test';
print_r(in_array($login, array_column($users, 'login')));

http://sandbox.onlinephpfunctions.com/code/ab8dfbba5d6af384347b145e19aa8e25fd01e88c

Но я считаю, что проще одним циклом. Потому что в схеме выше будет аж два цикла. Но зато кода меньше

Answer 2

Можно вот так:

$needle = 'qwe';
$result = !empty(array_filter($users,
function ($innerArray) use ($needle)
    {
    return ($innerArray['login'] == $needle);
    }));
var_dump((bool)$result);

Пример.

Взято отсюда.

READ ALSO
Числа с плавающей точкой в нормальный формат

Числа с плавающей точкой в нормальный формат

ЗдравствуйтеРаботаю с bitcoin через json-rpc

171
AJAX, несколько операций на один скрипт

AJAX, несколько операций на один скрипт

На моей странице есть 3 действия: добавление поста, его удаление и редактированиеAJAX запрос на добавление уже написан, и появился вопрос: на 2 других...

164
Функция возвращает неверное значение

Функция возвращает неверное значение

Почему на строке 31(int fD =

243