Hocam kodlarınızdan anladığım kadarıyla sayfalar tarandıkça title değerlerini $titles, linkleri $link ve görselleri $img dizisi içine kaydetmişsiniz.
$link adını görünce bunu tek bir link olarak algılıyor insan. Eğer içinde linkleri tutan bir dizi ise $links olarak kullanın adını. Aynı şey $img içinde geçerli.
Bu yapıda data dizisine her döngüne yeni kayıt eklenmez, $data değişkeninin değeri değiştirilir.
$data = [];
foreach ($titles as $key => $title) {
$data = [
"title" => $title,
"link" => $link[$key],
"img" => $img[$key]
];
}
Sizin kod yapısı ile aşağıdaki şekilde yapabilirsiniz:
$data = [];
foreach ($titles as $key => $title) {
$tempData = (new ScrappedData)
->setSiteName(self::$site_name)
->setTitle($title)
->setLink($link[$key])
->setImage($img[$key])
->setService(__CLASS__);
array_push($data, $tempData);
}
Yanlız yol yakınken bence verileri tutma şeklinizi vs değiştirin yoksa ilerledikçe içinden çıkılmaz bir hal alabilir.