私は4つの項目(配列から)の無作為化リストに現在のURLのファイル名が含まれていないことを確認するより効率的な方法を探しています。ランダム化されたリストにURLの一部が含まれていないことを確認するより効率的な方法はありますか?
解決策はデータベースを使用しません。 $relatedArray[$rand_keys[0]]
は、この.phpファイルで作成された標準配列です。これには約100のコードスニペットが含まれ、各スニペット(配列内のアイテム)には一意のURLが含まれています。
私は以下の解決策を考え出しました。それは動作しますが、より効率的なソリューションがあると思います。どんな提案も大歓迎です。
// How to isolate a filename in a URL - https://stackoverflow.com/questions/2183486/php-get-file-name-without-file-extension
$fileName = pathinfo($_SERVER['REQUEST_URI']);
$rand_keys = array_rand($relatedArray, 4);
//Ignore if array value contains variable value. https://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word-in-php
if (strpos($relatedArray[$rand_keys[0]], $fileName['filename']) !== false) {
echo $relatedArray[$rand_keys[1]] . "\n<br>";
echo $relatedArray[$rand_keys[2]] . "\n<br>";
echo $relatedArray[$rand_keys[3]] . "\n<br>";
} elseif (strpos($relatedArray[$rand_keys[1]], $fileName['filename']) !== false) {
echo $relatedArray[$rand_keys[0]] . "\n<br>";
echo $relatedArray[$rand_keys[2]] . "\n<br>";
echo $relatedArray[$rand_keys[3]] . "\n<br>";
} elseif (strpos($relatedArray[$rand_keys[2]], $fileName['filename']) !== false) {
echo $relatedArray[$rand_keys[0]] . "\n<br>";
echo $relatedArray[$rand_keys[1]] . "\n<br>";
echo $relatedArray[$rand_keys[3]] . "\n<br>";
} elseif (strpos($relatedArray[$rand_keys[3]], $fileName['filename']) !== false) {
echo $relatedArray[$rand_keys[0]] . "\n<br>";
echo $relatedArray[$rand_keys[1]] . "\n<br>";
echo $relatedArray[$rand_keys[2]] . "\n<br>";
} else {
echo $relatedArray[$rand_keys[0]] . "\n<br>";
echo $relatedArray[$rand_keys[1]] . "\n<br>";
echo $relatedArray[$rand_keys[2]] . "\n<br>";
echo $relatedArray[$rand_keys[3]] . "\n<br>";
}
'foreach'言語構造がありますが。 –