foreach($connect as $key => $connect) {
ну а здесь вообще странное не что. у вас $connects вроде массив соединений. а вы пытаетесь иттерировать $connect причем перезаписывая его.
$read[]= $socket;
не совсем понятно зачем вы в цикле нное количество раз загоняете это в массив?
и потом еще и проверяете его наличие if (in_array($socket, $read)) {
Оно там точно есть - вы его туда только что положили. но зачем не понятно
потому что потом вы его сразу вычищаете
Александр, ну может быть вам выбирать миллионы записей в тот момент когда вы будете обрабатывать. тут все равно особой выгоды от eager loading не будет. еще раз - подход а давайте в память захреначим миллион чего либо - обречен на провал. окей - может вы запихнете миллион элементов массива, а моделей влезет всего лишь 100 тысяч. Но жить это будет до момента когда в выборку не попадет миллион и 100 тысяч. То есть стоит менять подход - а не пытаться экономить на спичках