100 個の要素の配列から 50 個の一意の要素を迅速かつランダムに削除する方法
100 個の要素の配列から 50 個の一意の要素をすばやくランダムに削除するにはどうすればよいですか?
ディスカッションへの返信 (解決策)
array_rand($a, 50);
次に、配列の重複を排除して、ランダムフェッチを呼び出します
次に、配列の重複を排除して、ランダムフェッチを呼び出します
たとえば、1 ~ 100 の値がサイズ 100 の配列に配置されている場合、50 個の非反復要素を迅速かつランダムに抽出するにはどうすればよいでしょうか。 49 時間目など、後でフェッチすると、すでにフェッチされているデータがフェッチされる可能性が依然として非常に高いと考えられますが、この問題を解決するにはどうすればよいでしょうか。
1階の正解はマニュアルを確認してください、array_rand
1階の正解はマニュアルを確認してください、array_rand
array_randはどのように実装されていますか? 次のように実装することもできます。
$num =0;$array = array(1,2,3,4,5,6,7,8,9);$arr =array();$g = 5;$tag = true;while($tag){ $count = count($array); $t = rand(0,1); if($t==1){ $arr[] = $array[$num]; unset($array[$num]); } $num++; if(count($arr)==$g){ $tag=false; } if($num == $count){ $num = 0; }}
空の配列を作成し、array_rand がランダムに 1 つを取り出して配列に追加し、2 番目の配列を取り出して、取り出したものが既に配列にあるかどうかの判断を開始します。 50 項目保存してループを終了します
function swap(&$a, &$b){ $temp = $b; $b = $a; $a = $temp;}$result = array();$src = array();for($i = 0 ; $i < 40 ; $i++){ $src[] = $i + 1;}$arr_len = count($src);$count = 20;$index = 0;while($index < $count){ $random = rand(0, $arr_len - $index - 1); $result[] = $src[$random]; swap($src[$random] , $src[$arr_len - $index - 1]); $index += 1;}print_r(json_encode($result));print_r(json_encode($src));
このように書いてみてはどうでしょうか
#1 言ったじゃないですか? 考えられる結果
3,5,6,7,10,12,13,15,16,19,20,23,30,31,33,35,37,38,39,44,46,49, 51 ,53,54,59,61,63,64,65,66,69,71,72,74,75,77,78,80,82,83,87,88,89,91,92,96,97 ,98,100
$arr = array(1,2,3,3,4,56,fdas,....);
$unique = array_unique($arr)
print_r(array_rand($unique,50 ); );
mixed array_rand ( array input [, int num_req] )
array_rand() は、配列から 1 つ以上のランダムなセルを取り出したい場合に非常に便利です。入力を入力配列として受け入れ、オプションのパラメーター num_req を使用して、削除するセルの数を指定します。指定しない場合、デフォルトは 1 です。
1 つだけを取り出す場合、array_rand() はランダムなユニットのキー名を返し、それ以外の場合はランダムなキー名を含む配列を返します。このようにして、配列からキーと値をランダムに取り出すことができます。
1. まず、array_unique を使用して一意の要素を取得します。
2. シャッフルを使用して順序を乱します
3. array_slice を使用して 50 個の要素を取得します。
例:
rree

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
