Если бесплатных видеокурсов вам уже недостаточно, можете переходить к платным. Например на webformyself.com есть курс "PHP-МАСТЕР. От теории до собственной CMS интернет-магазина". В практической части там описывается процесс создания интернет-магазина на PHP.
Но от официальной документации https://php.net вам все-равно никуда не деться, если хотите овладеть языком на достаточном уровне.
Notice не является ошибкой или даже предупреждением - он сообщает вам о фрагментах кода, на которые стоит обратить внимание. В данном случае вы пытаетесь использовать индексы массива, которые не были ранее инициализированы, поэтому содержимое данного индекса всегда будет пустым.
Правильное решение - пересмотреть код. Скорее всего, вы вызываете скрипт из крона и пытаетесь использовать в нём суперглобальную переменную $_SERVER (в этом случае она будет пустой).
Неправильное решение - указать для конкретного скрипта уровень подробности отчёта об ошибках. Например, если вы хотите видеть только ошибки и предупреждения - в начале PHP-файла укажите такую строку:
Можно также отключить запись в логи Notice глобально - для этого в php.ini нужно изменить параметр error_reporting на вышеуказанное значение.
Я пока так сделал, типа
$array2 = $array;
unset($array2["a2"]);
Но может быть есть какое-нибудь простое решение, если я например знаю ключи вложенных массивов, которые мне нужно оставить, то чтобы они остались, а остальные вложенные массивы удалились?
А то в моем решении нужно указывать ключ массива, который нужно удалить.
У меня просто много вложенных массивов.
Скорее всего в браузере набиралась чуть чуть другая строчка
попробуйте изменить в коде строчку с переменной $my_currency
на такую
$my_currency = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily_eng.asp?date_req=02.02.<wbr />2017');
Для просмотра исходного кода страницы можно нажать клавишу F12 или вызвать из меню браузера средства разработчика, в разных браузерах по разному
обычно меню сервис\Средства разработчика
В Edge ...\Средства разработчика