public function slugs() { $slugs = Slug::orderBy('updated_at', 'desc')->get(); /******************/ $dirtyCities = Flight::doesntHave('city')->orderBy('country_code')->groupBy('city')->get(); $cleanCities = City::groupBy('city_slug')->get(); $noMatches = array(); $dirtyCountries = array(); $cleanCountries = array(); foreach ($dirtyCities as $dirtyCity) { $similarsArray = array(); foreach ($cleanCities as $cleanCity) { similar_text($dirtyCity->city_slug, $cleanCity->city_slug, $percent); $similarityArray[$cleanCity->city_slug] = $percent; $cleanCountries[$cleanCity->city_slug] = $cleanCity->country_code; } //sort in descending order arsort($similarityArray); //take first few with highest similarity $similarityArray = array_slice($similarityArray, 0, 8); $noMatches[$dirtyCity->city_slug] = $similarityArray; $dirtyCountries[$dirtyCity->city_slug] = $dirtyCity->country_code; } return view('scrapers.slugs')->with(['slugs' => $slugs, 'noMatches' => $noMatches, 'dirtyCountries' => $dirtyCountries, 'cleanCountries' => $cleanCountries]); }