mrusklon
@mrusklon
Не получается? Яростно гугли!

Как убрать из массива лишних людей?

$stmt6Arr = $stmt6->fetchAll(PDO::FETCH_ASSOC); 
                        while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
                            $iterate++;
                            foreach ($stmt6Arr as $fav) {
                                if ($data['users_id'] == $fav['fav_user_id']) {
                                       оставить в массиве data только пользователей которые совпали
                                } else {

                                }
                            }
                        }

есть 2 массива stmt6Arr , в нем список "избранных" сотрудников, он короткий но там только их id
второй массив $data со всеми пользователями и еще кучей лишних данных которые далее используются по необходимости
я хочу второй массив обрезать до длинны первого чтобы оставить в массиве data только пользователей которые совпали как написал в условии
подскажите как это сделать?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Ваш подход к задаче неверен. Зачем вытаскивать все записи из базы и затем фильтровать, когда можно получить только нужные выполнив правильный запрос:
$favorites = [103, 105];

$favorite_ids = implode(',', $favorites);

$query = sprintf('SELECT * FROM employees WHERE employee_id IN (%s)', $favorite_ids);

run php online
Ответ написан
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
https://www.php.net/manual/ru/function.array-inter... + https://www.php.net/manual/ru/function.array-column.php
Ну условие у вас верное, просто записывайте $data в массив результата, и его возвращайте, else там лишнее
Ещё вариант это исключать самим запросом
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект