このサンプルコードは私に頭痛を与えています。私は配列から2つのランダムな値を取得しようとしています。選択された2つのエントリを削除し、すべての要素が選択されるまで続行します。私の問題は、最初の1-2ピックはうまく動作しますが、配列内にない値が選択され、同じ値が2回選択されるということです。コードが2のunset-linesを削除するとOKです... キーの配列を返しますエントリを削除するとPHPのarray_searchが機能しない
<?php
$number=array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);//range(1,10);
//var_dump($number)." - ";//
for ($p = 1; $p <= 5; $p++) {
echo "Nr. :".$p."</br>";
echo implode(",",$number)."</br></br>";
$udtrak = array_rand($number,2); // udvælger 2
$pos[0] = array_search($udtrak[0], $number);
$pos[1] = array_search($udtrak[1], $number);
echo "Number: ".$number[$pos[0]]." Found at: " . $pos[0]."</br>";
echo "Number: ".$number[$pos[1]]." Found at: " . $pos[1]."</br>";
//unset($number[$pos[0]]);
//unset($number[$pos[1]]);
//var_dump($pos);
$number=array_values($number);
echo implode(",",$number)."</br></br>";
} // for $p
?>
あなたの期待される出力の例を表示します。 –
開始時に一度シャッフルしてから、それぞれの反復の前に2つの要素を引き出してみてはどうでしょうか?それでは重複はありません。 – mickmackusa