2017-07-01 44 views
0

我有一個代碼可以從一個組中選擇4個選項並將其放入一個字符串中,但我在那裏遇到了一些問題。
這些都是我的默認數據:需要一個代碼在選項之間隨機選擇

$PID[1] = "PID1"; 
$PID[2] = "PID2"; 
$PID[3] = "PID3"; 
$PID[4] = "PID4"; 
$CID[1] = "CID1";  
$CID[2] = "CID2"; 
$CID[3] = "CID3"; 
$CID[4] = "CID4"; 

我創建一個名字Loops.php一個文件,並把這些代碼是:

$Also = "1"; 
while (isset($PID[$Also])) { 
    echo '"'.$CID[$Also]."/".$PID[$Also].".php".'"'; 
    $Also++; 
    if (isset($PID[$Also])) { 
     echo ", "; 
    } 
} 

,然後我在主要頁面中使用此代碼:

$input = array(include 'Loops.php'); 
$rand_keys = array_rand($input, 4); 
$A = $input[$rand_keys[0]]; 
$B = $input[$rand_keys[1]]; 
$C = $input[$rand_keys[2]]; 
$D = $input[$rand_keys[3]]; 

但是當我回應任何最後的字符串它不起作用。
如果有人能幫助我,我將不勝感激。

回答

0

這不是你應該如何在while循環中構建路徑數組,而是使用一個函數並將該循環放入該函數中。隨後,使用while循環內的數組並循環添加路徑。最後,分別包含Loops.php,不在array(...);之內。所以,你在Loops.php頁面代碼會是這樣的:

$PID[1] = "PID1"; 
$PID[2] = "PID2"; 
$PID[3] = "PID3"; 
$PID[4] = "PID4"; 
$CID[1] = "CID1";  
$CID[2] = "CID2"; 
$CID[3] = "CID3"; 
$CID[4] = "CID4"; 

function constructPathArr($PID, $CID, $Also){ 
    $pathArr = array(); 
    while (isset($PID[$Also])) { 
     $pathArr[] = $CID[$Also]."/".$PID[$Also].".php"; 
     $Also++; 
    } 
    return $pathArr; 
} 

,並在主網頁的代碼會是這樣:

include 'Loops.php'; 
$input = constructPathArr($PID, $CID, 1); 
$rand_keys = array_rand($input, 4); 
$A = $input[$rand_keys[0]]; 
$B = $input[$rand_keys[1]]; 
$C = $input[$rand_keys[2]]; 
$D = $input[$rand_keys[3]]; 
+0

非常感謝它的工作非常出色。 –

+0

@MohammadZahed不客氣!很高興我能幫上忙。 :-) –