Использование другого массива хорошо работает, используя implode для получения окончательной строки:
$clauses = array();
foreach($test as $t) {
$clauses[] = "u.root = {t[$i]}";
}
$ands = implode(',', $clauses);
Однако, для вашего случая, когда это одно поле и несколько значений, вы можете перейти кэто другой прочь:
$in = implode(',', $test);
$sql = " ... WHERE u.room IN ($in)";