Попробуйте это.
function getIDs() {
$result = array();
$sql = 'SELECT user_id FROM users WHERE ready = "1" ';
$idList = $this->getAdapter()->fetchAll($sql);
if(!empty($idList)) {
foreach($idList as $value) {
echo $value['user_id']."\n";
array_push(result, $value['user_id']);
}
}
// $result = array_unique($result);
return $result;
}
Затем вы получите массив по:
$bunch_of_ids = getIDs();
Вы должны выяснить, почему они дублируются, но если вы не можете, вы можете сделать содержимое массива уникальным с помощью:
$result = array_unique($result);
Поместите это прямо перед return $result;
внутри функции. Я прокомментировал это в функции выше, потому что было бы намного лучше выяснить, почему это дублируется в первую очередь. Как я отметил в комментарии к вашему вопросу, убедитесь, что функция не вызывается дважды. Также проверьте базу данных на наличие дублирующихся записей (хотя это не должно быть возможно, если 'user_id' является первичным ключом).
(Обратите также внимание, что я переименовал функцию в getIDs (), потому что нет смысла иметь функцию getID (), возвращающую несколько значений. :))