-2

1 つはユーザー情報を含み、もう 1 つは選択したくない最初の配列からのユーザーに関する ID を含みます。

2番目の配列にない最初の配列データから新しい配列データに挿入したい。

while ( count( $new_array) < 50 ) 
    {
        $index = array_rand($array_1);

        if ( ! in_array( $array_1[$index]['id'], $array_2) ) 
        {
            array_push( $new_array, $array_1[$index] );
            array_push( $array_2, $array_1[$index]['id'] );
        }
    }

$array_1 からデータが選択されたら、再度選択されないように $array_2 に挿入します。これは、while ループが 12 回以上実行されない場合に機能しますが、30 秒以上実行されるとスクリプトが停止します。何が問題になる可能性がありますか?

4

1 に答える 1

0

array1 から既にランダムに選択されたインデックスを追跡しようとする代わりに、選択後にその項目を配列から削除するだけです。元の配列を変更せずに保持する必要がある場合は、複製することから始めます。

于 2013-01-22T19:47:57.640 に答える