ホームページ  >  記事  >  バックエンド開発  >  PHP 配列学習のランダムなソート、配列要素の破壊

PHP 配列学習のランダムなソート、配列要素の破壊

青灯夜游
青灯夜游オリジナル
2021-08-03 12:18:534887ブラウズ

前回の記事では、配列要素を降順にソートする方法を紹介しました。興味のある方はリンクをクリックしてご覧ください→「 PHP配列学習のヒント:配列関数を使用して配列をソートする」降順で! 》。では、特定のルールに従って昇順または降順に並べ替えるのではなく、元の順序を破棄して配列要素を破壊したいのはなぜでしょうか?どうすればよいでしょうか?

今日は、PHP 配列をランダムに並べ替える方法と、配列要素をランダムにシャッフルする方法を学びます。

それでは、どのように操作すればよいのでしょうか?実際、これは非常に簡単で、組み込み関数 shuffle() を直接使用して実現できます。 shuffle() 関数は、配列内の要素をランダムな順序で再配置します。

コード例を使用して、shuffle() 関数が配列をランダムにシャッフルする方法を見てみましょう。

<?php
header("Content-type:text/html;charset=utf-8");
$arr1 = array(10, 23, 5, 12, 84, 16);
shuffle($arr1);
var_dump($arr1);

$arr2= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
shuffle($arr2);
var_dump($arr2);
?>

出力結果:

PHP 配列学習のランダムなソート、配列要素の破壊

結果を更新すると、結果が変わります:

PHP 配列学習のランダムなソート、配列要素の破壊

PHP 配列学習のランダムなソート、配列要素の破壊

注: shuffle() 関数は、配列をランダムにシャッフルするだけでなく、配列内の元のキー名を削除し、新しい数値キー名を割り当てます (つまり、インデックスは関係が維持されない)。

ランダムにスクランブルされたキー名の配列を保持したい場合は、array_keys() 関数を使用できます。

アイデア: array_keys() 関数を使用して、元の配列 $arr のすべてのキー名を取得すると、配列内のすべてのキー名を含む新しい配列 $key が返されます。次に、 shuffle() 関数を使用して $key 配列をランダムにシャッフルします。最後に、foreach ループを使用して $key 配列を走査し、$key 配列の値に基づいて $arr 配列のキーと値のペアを取得し、その値を $arr2 配列に 1 つずつ割り当てます。

実装コードを見てみましょう:

<?php
header("Content-type:text/html;charset=utf-8");
$arr =array("香蕉","苹果","梨子","橙子","橘子","榴莲");
var_dump($arr);

if (!empty($arr)) {
    $key =array_keys($arr);
    shuffle($key);
    foreach ($key as $value) {
      $arr2[$value] =$arr[$value];
    }
    $arr =$arr2;
}
echo "随机打乱数组:";
var_dump($arr);
?>

出力結果:

PHP 配列学習のランダムなソート、配列要素の破壊

今のところはここまでです。他に何かあれば知りたいこと はい、これをクリックしてください。 → →php ビデオ チュートリアル

最後に、PHP 配列に関する無料のビデオ チュートリアルをお勧めします。PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。

以上がPHP 配列学習のランダムなソート、配列要素の破壊の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。