私はチャンピオンのリーグ(明日、3月16日)のために私自身の準々決勝抽選をしたいと思った:私は2つの質問がある:最初にモジュロは動作しません:それは "配列、私はそれが書かれていたが、2つの一致すべて(2つのエントリごとに)...PHPモジュロと結果のprint_r?
2番目の質問:結果を印刷するより良い方法はありますか?インデックスなしのprint_rのように、 ""と入力すると、それぞれのエントリの後に\n
と表示されます。あなたの助け
私はチャンピオンのリーグ(明日、3月16日)のために私自身の準々決勝抽選をしたいと思った:私は2つの質問がある:最初にモジュロは動作しません:それは "配列、私はそれが書かれていたが、2つの一致すべて(2つのエントリごとに)...PHPモジュロと結果のprint_r?
2番目の質問:結果を印刷するより良い方法はありますか?インデックスなしのprint_rのように、 ""と入力すると、それぞれのエントリの後に\n
と表示されます。あなたの助け
モジュロため
<body>
<?php
$array = array("real", "barça", "bayern", "apoel", "chelsea", "milan", "benfica", "marseille");
$new = array();
$incr = count($array);
while($incr>0){
$random = rand(0, count($array));
if (!in_array($array[$random], $new)){
$new[] = $array[$random];
if ((count($new) % 2)){
$new[] = " -- another match : ";
}
$incr--;
}
}
print_r($new);
?>
<p>results</p>
</body>
おかげで完璧に働いている:
-- another match
を追加するので、あなたが別の要素を追加し、ので、1 % 2
、そうtruthyので1
1でありますアレイ。あなたがそうで-- another match
を追加して
1
、そう3 % 2
、今ではtruthy 3です。あなたがしようとしていることは何でも、それはあなたがサーバーに何を話したかではありません。 あなたはおそらく、やるべきことは、このようなものです:
$array = Array(........);
while($a = array_shift($array)) {
$random = rand(0,count($array)-1); // -1 is important!
echo $a." vs. ".$array[$random]."<br />";
unset($array[$random)];
// no need to realign keys since array_shift already does that
}
あなたはそれを言っているよう弾性率が正確に働いています。
(カウント(新しい$)%2)){
when count($new) = 1, 1 % 2 = 1, = true
when count($new) = 2, 2 % 2 = 0, = false
when count($new) = 3, 3 % 2 = 1, = true
when count($new) = 4, 4 % 2 = 0, = false
when count($new) = 5, 5 % 2 = 1, = true
when count($new) = 6, 6 % 2 = 0, = false
ありがとうMark Baker – Paul
は、別のオプションは、次にshuffleアレイ要素のそれぞれオフだけpopになり
$array = array("real", "barça", "bayern", "apoel", "chelsea", "milan", "benfica", "marseille");
shuffle($array);
while($a = array_pop($array)) {
echo $a." vs. ".array_pop($array)." <br />";
}
サンプル出力。
apoel vs. real
barça vs. milan
marseille vs. bayern
chelsea vs. benfica
おかげで、面白い、なぜあなたはUNSを使用してくださいet? print_rの場合は、実際には、変数に基本的なhtmlコードを入れることができます。
とすれば、良い解決策に見えます – Paul
うん、およそ-1? array_shiftは '$ array'を変更するので、' count($ array) 'は配列の要素数をシフトした後のものです...そうではありませんか? – Paul
配列要素を設定解除すると、再度選択されません。そして、 '-1'の場合...' Array '(' a '、' b '、' c ') 'があり、' count'は3ですが、最後の要素は '2'の位置にあるとします。 –