2017-07-01 24 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ループを配置します。その後、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大歓迎です!お役に立てて嬉しいです。 :-) –

関連する問題