Secondo me la fai un po' complicata. Correggimi se sbaglio su quelle che sono le intenzioni dello script:
Dato in $results[1] un array di link, ovvero $results[1][0] contiene un http://aaaa/, $results[1][1] contiene http://bbbb/ e così via... verifichi se la stringa $this->url è presente all'interno di $link nel qual caso calcoli la lunghezza della sottostringa dalla stringa trovata fino alla fine della stringa in cui cerchi per vedere se maggiore di 0. In altri termini vuoi sapere se $this->ulr è contenuta in $link. Nel qual caso memorizzi in $link_ar[] il valore di $link ed interrompi il foreach. In link_ar carichi i nomi host.
Io ho rimosso il break perché non capisco il senso di memorizzare in un array per poi bloccare alla prima occorrenza, ovvero l'array può avere al più un valore
Mi sono permesso di modificare un poco il codice togliendo gli elementi inutili o rimasti appesi visto che forse hai strappato il codice ad una classe. Il tuo $this->url è per me $url e il codice che ti posto funziona senza problemi
Codice PHP:
$results[1]=array("http://www.pippo.com/","http://www.paperino.it/","http://www.paolinopaperino.org/");
$url="paperino";
$link_ar=array();
foreach ($results[1] as $link)
if (strpos($link, $url)!==false) {
$link_ar[] = $link = preg_replace('(^[url]http://[/url]|/$)', '', $link);;
echo "$link
";
}
$l_count_link_array = count($link_ar);
echo "$l_count_link_array
";