需要在选项

时间:2017-07-01 15:15:37

标签: php random include

我有一个代码可以从一个组中选择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]];

但是当我回显任何最终字符串时,它不起作用。
如果有人能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

这不是你应该如何在while循环中构造路径数组,而是使用一个函数并将该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]];