Se poate gasi insa o solutie mai buna la cele 2 foreach-uri imbricate. Variabila $result ar trebui definita inainte de primul foreach.
Poti decomenta print_r - urile intermediare.
LE: echo preg_replace("/youtube#video/", " ", $videoclip) iti scoate “youtube#video” si o sa iti afiseze id-urile
Foloseste conceptul de “o responsabilitate per rand de cod”, observa cum am rescris one-liner-ul de adus date in asa fel incat fiecare rand de cod sa aiba o singura responsabilitate
Am folosit ArrayObject pentru stocarea rezultatelor, deoarece are iterator si nu incarca memoria; iti va fi foarte util atunci cand vei avea sute de lucruri in acel array dpdv al eficientei
Nu amesteca denumirea variabilelor in romana ($videoclip) si engleza; be consistent (recomand engleza)
Nu folosi prescurtari la denumirea variabilelor (deci nu $elem)
Incearca sa denumesti variabilele in functie de scopul lor, nu $id sau $elem; aici nu am intervenit pe cod, dar te rog sa o faci tu
ideal ar fi sa folosesti un cache odata ce ai parcurs un canal, sa nu accesezi APIul youtube din nou pt acelasi canal daca vine alt user sa solicite acelasi lucru
file_get_contents nu e potrivit pentru scraping/accesare de API-uri pentru ca nu poti pasa parametri de header, etc; incearca sa te uiti la clienti HTTP precum Guzzle, Httpful sau Requests