Doğru çözüm ancak ufak bir çıkarma yapabiliriz. explode fonksiyonu eğer virgülü bulmazsa zaten bir array döneceği için [0] indexi her zaman olacaktır. Bu sebeple bir kere explode çalıştırdığınızda str_contains yapmadan doğrudan $veri[0] şeklinde değeri alabilirsiniz. Ayrıca if kontrolüne gerek kalmamış olur.

emregunery adlı üyeden alıntı: mesajı görüntüle
$kanaladi = //Burası bu kodun yukarısında olmalı for döngüsüne almıştım burası kalsın.
if (str_contains($kanaladiara, "nba") || str_contains($kanaladiara, "s sport") || str_contains($kanaladiara, "tivibu") || str_contains($kanaladiara, "trt")) {
//Eklenen Yeni Kod
if (str_contains($kanaladi,",") {
$kanaladi = explode(",",$kanaladi)[0]; //0 Yazarsanız virgülden öncekini 1 yazarsanız virgülden sonrasını alır
}

}