Если бесплатных видеокурсов вам уже недостаточно, можете переходить к платным. Например на webformyself.com есть курс "PHP-МАСТЕР. От теории до собственной CMS интернет-магазина". В практической части там описывается процесс создания интернет-магазина на PHP.
Но от официальной документации https://php.net вам все-равно никуда не деться, если хотите овладеть языком на достаточном уровне.
Дело в примере далеко не в foreach. Здесь имеет место тяжёлый случай для языков программирования, в которых тип данных для переменной не определяется строго, к которым и относится PHP. Попробуйте заменить первый элемент массива на любое другое число - и этого "глюка" уже не будет.
Проблема в том, что интерпертатор PHP пытается сам подобрать подходящий для сравнения тип данных у переменной $value. Думаю, его логика такая, что он считает $value логической переменной (Boolean), в результате 0 превращается в FALSE. Но на другой стороне сравнения стоит одна буковка (Char), в результате чего FALSE преобразуется до F.
Чтобы избавиться от этого "глюка", можно использовать такие варианты:
- Явно указать тип переменной $value в сравнении.
- Использовать строгую проверку, чтобы PHP не приводил сравниваемые данные к наиболее подходящему типу.
В процедурном стиле вы оперируете процедурами. Самописными или библиотечными.
В ООП вы работаете с обьектами. Обьекты описываются сложнее чем процедуры. Но возможностей больше.
А где чем отличается.
Например в Питоне нельзя изменять содержимое кортежа, в отличие от массива.
В других языках (если не ошибаюсь, то Lisp) - не всякий кортеж упорядочен, в отличии от массива.
А в остальном это действительно похожие сущности, к которым можно еще отнести список.
Если Вы уже владеете каким-нибудь языком программирования, то: Придумайте какой-нибуть проект. Распишите по пунктам все задачи, которые нужно реализовать в нем, составьте алгоритмы и ищите по справочникам и в сети способы их реализации. Весь синтаксис и командные слова усвоите по ходу. Это пожалуй наилучший способ.
Если же это первый язык, который Вы решили изучать, то начните с изучения синтаксиса и команд. (Но в таком случае, лучше заняться изучением С, C# или С++ - в РНР синтаксис подобен синтаксису С). Потом переходите к простеньким примерам, которые есть в каждом учебнике. После того, как навскидку сможете ответить, как реализовать тот или иной алгоритм (например, отсортировать по возрастанию элементы массива, вывести те или иные слова и/или предложения и т.п.), сдлайте задание посложней, вывести несколько страниц в одном шаблоне. Ну а потом уже и еще сложней - управление пользователями и контентом (но тут еще подключатся SQL). Вобщем, если с нуля, то начинайте с учебника.
Если еще способ, скачать готовый проект и путем изменений (метод тыка) усваивать, что за что отвечает (правда так знания будут не систематизированы, но кому-то так легче и интересней).