фреймворки не используете? они очень хорошо реализуют Отношения моделей.
А так:
1.достаю сам массив;
но ведь left join'ом или подзапросом можно поцепить статусы лайка/дизалайка тек юзера
2.проверяю не был ли лайк уже поставлен (у каждой статьи!!!)
что мешает собрать все ID статей на странице и одним запросом спросить все лайки/дизлайки тек юзера?
3.чтобы вывести общее количество лайков у статьи опять запрос.
опять же можно или отдельным запросом собрать все кол-во для тек статей или left join или подзапрос
4. ну и если лайкнул тоже запрос.
это уже действие, запись, тут не грех пожертвовать ресурсами