現在の位置: ホーム> 最新記事一覧> 保持されているキー名を破壊するためのPHPアレイのテクニックと方法

保持されているキー名を破壊するためのPHPアレイのテクニックと方法

M66 2025-07-30

保持されているキー名を破壊するためのPHPアレイのテクニックと方法

PHP開発では、多くの場合、配列を操作する必要があります。一般的な要件の1つは、配列の要素順序を破壊し、元のキー名を保持することです。 PHPのShuffle()関数は配列の順序を破壊する可能性がありますが、キー名は失われます。キー名を保持するために、他のいくつかの戦略を採用できます。

方法1: array_rand()関数を使用します

まず、 array_rand()関数を使用して、配列内のキー名をランダムに選択し、これらのキー名を保持することにより、縮小された配列を再生できます。

 $array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_rand($array, count($array));
$shuffled_array = [];
foreach ($keys as $key) {
    $shuffled_array[$key] = $array[$key];
}

方法2: MT_RAND()関数を使用します

別の一般的な方法は、あらゆる種類の配列でより良いパフォーマンスを発揮するMT_RAND()関数を使用することです。 array_keys()を介して配列のキー名を取得し、 shuffle()を使用してこれらのキー名を破壊し、破壊されたキー名に基づいて新しい配列を生成できます。

 $array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_keys($array);
shuffle($keys);
$shuffled_array = [];
foreach ($keys as $key) {
    $shuffled_array[$key] = $array[$key];
}

方法3:サードパーティライブラリを使用します

既製のソリューションを使用する場合は、 Arraylibなどのサードパーティライブラリを使用することを検討してください。これらのライブラリは通常、アレイを操作するためのより簡潔で効率的な方法を提供します。

 use ArrayLibArrays;
$array = ["a" => 1, "b" => 2, "c" => 3];
$shuffled_array = Arrays::shuffle($array);

パフォーマンスの比較

3つの方法のパフォーマンスは、さまざまなサイズの配列に対して異なります。

  • array_rand() :小さな配列ではパフォーマンスが向上しますが、アレイサイズが増加すると効率が低下します。
  • MT_RAND() :配列のサイズに関係なく、バランスが取れます。
  • サードパーティライブラリ:通常、特に大量のデータ量に対して、より良いパフォーマンスを提供します。

シナリオを使用します

次のシナリオでは、配列を破壊してキー名を保持することは非常に便利です。

  • 各要素のキー名にアクセスできるようにしながら、配列の順序を破壊する必要がある場合。
  • シャッフルリストまたはアイテムの注文を生成する必要がある場合。
  • 配列データのランダムサンプリングが必要な場合。

注意すべきこと

  • array_rand()およびmt_rand()は、値ではなくランダムに選択されたキーを返します。値を取得するには、 $ array [$ key]を使用する必要があります。
  • サードパーティライブラリを使用する場合、最初に関連するライブラリをインストールする必要がある場合があります。
  • アレイを中断する前に、元のデータの変更を避けるために、最初に元の配列をコピーすることをお勧めします。

要約すると、PHPは配列を破壊してキー名を保持するためのいくつかの方法を提供し、開発者は実際のニーズに応じて最も適切な方法を選択できます。