print_r(ArrayHelper::map(User::find()->selectUser()->all(), 'id', 'name'));
print_r(ArrayHelper::map(User::find()->all(), 'id', 'name'));
не пусто, а не пусто1. Единица в данном случае - это результат выполнения операции $b = 1. То есть присвоение, конечно произойдёт, но только в процессе вывода на экран.
Но когда таких переносов будет множество - правила будут огромными
А что скажите на счёт использования Alias?
Ну или какие там у вас условия вокруг array_unshift...