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