2015-06-09 47 views
0

我有一個腳本將衝浪者重定向到我網站的某些部分。例如,當我送衝浪者script.php?car=bmw它重定向衝浪者http://www.mywebsite.com/bmw重定向到數組中的隨機鏈接

這是腳本的樣子:

<?php 
$array = array(
    "bmw" => "http://www.mywebsite.com/bmw", 
    "toyota" => "http://www.mywebsite.com/toyota", 
    "mercedes" => "http://www.mywebsite.com/mercedes" 
); 

$car = $_GET['url']; 

header("Location: " . $array[$car]); 

?> 

現在我想衝浪重定向到隨機汽車,例如

"bmw" => "http://www.mywebsite.com/bmw/x1","http://www.mywebsite.com/bmw/x3","http://www.mywebsite.com/bmw/x5", 

"toyota" => "http://www.mywebsite.com/toyota/yaris", "http://www.mywebsite.com/toyota/avensis", "http://www.mywebsite.com/toyota/corolla", 

"mercedes" => "http://www.mywebsite.com/mercedes/e", "http://www.mywebsite.com/mercedes/s", "http://www.mywebsite.com/mercedes/d" 

因此,當我向衝浪者發送script.php?car=bmw時,腳本會將用戶重定向到bmw部分的隨機頁面之一。

我可以用一個數組做這個嗎?

回答

1

您需要使用多維數組和array_rand()函數。試着考慮下面的代碼:

$array = array(
    "bmw" => array("http://www.mywebsite.com/bmw/x1","http://www.mywebsite.com/bmw/x3","http://www.mywebsite.com/bmw/x5"), 
    "toyota" => array("http://www.mywebsite.com/toyota/yaris", "http://www.mywebsite.com/toyota/avensis", "http://www.mywebsite.com/toyota/corolla"), 
    "mercedes" => array("http://www.mywebsite.com/mercedes/e", "http://www.mywebsite.com/mercedes/s", "http://www.mywebsite.com/mercedes/d") 
); 

$car = $_GET['url']; 

header("Location: " . $array[$car][array_rand($array[$car],1)]); 

而不必爲「寶馬」一個價值,它現在擁有的,可隨機(array_rand()做這項工作你)值數組。

+0

這是工作,感謝你:) – Belhor

2

您可以使用array_rand這 -

並將其作爲 -

"bmw" => "http://www.mywebsite.com/bmw/x1,http://www.mywebsite.com/bmw/x3,http://www.mywebsite.com/bmw/x5", 

和應用 -

header("Location: " . array_rand(explode(',', $array[$car]))); 
+0

太棒了!這是數組的正確構造? 「bmw」=>「a」,「b」,「c」,「toyota」=>「a」,「b」,「c」,「mercedes」=>「a」,「b」 ? – Belhor

+0

Vote Up for the answer – Deep

+0

@Belhor no。目前它將適用於字符串。 –

1

<?php 
 
$array = array(
 
    "bmw" => array("http://www.mywebsite.com/bmw/x1","http://www.mywebsite.com/bmw/x3","http://www.mywebsite.com/bmw/x5"), 
 
    "toyota" => array("http://www.mywebsite.com/toyota/yaris","http://www.mywebsite.com/toyota/avensis","http://www.mywebsite.com/toyota/corolla",), 
 
    "mercedes" => array("http://www.mywebsite.com/mercedes/s","http://www.mywebsite.com/mercedes/d") 
 
); 
 

 
$car = $_GET['url']; 
 

 
$rand = rand(0,count($array[$car])-1) 
 

 
header("Location: " . $array[$car][$rand]);

2

在這種情況下,您可以重構數組以包含這些子類型。類似於

<?php 
$array = array(
    "bmw" =>array(
     'car1' => "http://www.mywebsite.com/bmw/car1", 
     'car2' => "http://www.mywebsite.com/bmw/car2", 
     'car3' => "http://www.mywebsite.com/bmw/car3", 
     'car4' => "http://www.mywebsite.com/bmw/car4", 
    ), 
    "toyota" =>array(
     'car5' => "http://www.mywebsite.com/toyota/car5", 
     'car6' => "http://www.mywebsite.com/toyota/car6", 
    ), 
    "mercedes" =>array(
     'car7' => "http://www.mywebsite.com/mercedes/car7", 
     'car8' => "http://www.mywebsite.com/mercedes/car8", 
    ), 
); 

$car = $_GET['url']; 

header("Location: " . $array[$car][array_rand($array[$car]))]; 

?>