2017-07-01 33 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不客气!很高兴我能帮上忙。 :-) –