Задать вопрос
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 только пользователей которые совпали как написал в условии
подскажите как это сделать?
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 там лишнее
Ещё вариант это исключать самим запросом
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽