array_unique($keywords), "link" => "/-/actions/$action[id]" ]; }*/ foreach ($toys as $toy) { $base = strtolower($toy["name"]); $addKeywords = $toy["keywords"] ?? []; $keywords = [ $base, ucfirst($base), ucwords($base) ]; for ($i = 0; $i < strlen($base); $i++) { $keywords[] = substr($base, 0, $i) . strtoupper(substr($base, $i, 1)) . substr($base, $i + 1, strlen($base) - $i - 1); for ($j = 0; $j < strlen($base); $j++) { $keywords[] = substr($base, 0, $i) . strtoupper(substr($base, $i, $j)) . substr($base, $i + $j, strlen($base) - $i - $j); } } foreach ($addKeywords as $keyword) { $keywords[] = $keyword; $keywords[] = ucfirst($keyword); $keywords[] = ucwords($keyword); for ($i = 0; $i < strlen($keyword); $i++) { $keywords[] = substr($keyword, 0, $i) . strtoupper(substr($keyword, $i, 1)) . substr($keyword, $i + 1, strlen($keyword) - $i - 1); for ($j = 0; $j < strlen($keyword); $j++) { $keywords[] = substr($keyword, 0, $i) . strtoupper(substr($keyword, $i, $j)) . substr($keyword, $i + $j, strlen($keyword) - $i - $j); } } } $pages[$toy["id"]] = [ "keywords" => array_unique($keywords), "link" => "/-/toys/$toy[id]" ]; } $keywords = []; foreach ($pages as $page) { foreach ($page["keywords"] as $keyword) { $keywords[] = [ "keyword" => $keyword, "link" => $page["link"] ]; } } uasort($keywords, function ($a, $b) { return strlen($b["keyword"]) - strlen($a["keyword"]); }); return $keywords; } function replaceKeyWords(string $input): string { $keywords = getKeyWords(); foreach ($keywords as $data) { $keyword = $data["keyword"]; $url = $data["link"]; $input = str_replace($keyword, "$keyword", $input); } return $input; }