@iurakuleshov

Вопрос с Foreach, как получить переменную?

Добрый день, вот сразу код
$id = $this->database->all("customs");     - тут получаем все значения из таблицы
$key_all = array_column($id, 'user_id');     - из полученных значений вытаскиваем ключи
$keys = array_unique($key_all);     -    убираем ключи с дублирующими значениями 
 foreach ($keys as $key) {     
     $users = $this->database->whereAll("users", 'id', $key);
}

Полученных в переменной $keys значений может быть неизвестное кол-во, через фореч я хочу сделать что бы по каждому значению он вытащил строку, но по итогу когда я вардамплю переменную $users получаю последнее значение из полученной таблицы, может как то не правильно я это все оформил, подскажите пожалуйста.
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
fo_otman
@fo_otman
Веб-разработчик
Ну ты умник :) Ты значение переменной $users перезаписываешь с каждой итерацией цикла. Объяви эту переменную как массив и вместо перезаписи добавляй значения в конец. Вот так:
$id = $this->database->all("customs");     //тут получаем все значения из таблицы
$key_all = array_column($id, 'user_id');     //из полученных значений вытаскиваем ключи
$keys = array_unique($key_all);     //убираем ключи с дублирующими значениями
$users = array(); //Инициализируем массив с пользователями
 foreach ($keys as $key) {     
     $users[] = $this->database->whereAll("users", 'id', $key); //Две скобочки решают 
}
Ответ написан
@NedoKoder
Правильно он делает. Ты каждый раз переопределяешь переменную. Делай так:

$users[] = $this->database->whereAll("users", 'id', $key);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы