ホームページ > バックエンド開発 > PHPの問題 > PHPで配列要素をランダムに削除する方法

PHPで配列要素をランダムに削除する方法

PHPz
リリース: 2023-04-23 16:30:59
オリジナル
3911 人が閲覧しました

PHP 配列では、配列から 1 つ以上の要素をランダムに取得することが非常に便利で便利な操作となります。この記事では、PHP の組み込み関数とカスタム関数を使用して、配列から要素をランダムに抽出する方法を紹介します。

1. array_rand() 関数を使用する

PHP には array_rand() という組み込み関数があり、配列から 1 つ以上のキーをランダムに取得し、ランダムな数値を返すことができます。キー名、インデックス配列。この関数の簡単な使用例を次に示します。

$fruits = array("apple", "banana", "orange", "grape");
$rand_key = array_rand($fruits);
echo $fruits[$rand_key]; // 随机输出一个水果
ログイン後にコピー

ここでは、単純なフルーツ配列 $fruits がランダムに取得され、返されたランダムなキー名を使用してフルーツの値が取得され、出力されます。

配列から複数の要素をランダムに取得する必要がある場合は、取得する数を指定できます:

$rand_keys = array_rand($fruits, 2); // 获取两个随机键名
foreach($rand_keys as $key){
    echo $fruits[$key] . "<br>"; // 循环输出两个随机水果
}
ログイン後にコピー

ここでは、$fruits 配列と指定された数量を array_rand() 関数に渡します。 , 2 つのランダムなキー名を含む配列 $rand_keys を返します。次に、foreach ループを使用して $rand_keys を走査し、対応するフルーツ値を取得して出力します。

2. カスタム関数

組み込み関数の使用に加えて、関数をカスタマイズして配列から要素をランダムに取得することもできます。ここでは、関数 rand_array() が提供されています。

function rand_array($array, $num = 1){
    $rand_keys = array_rand($array, $num);
    if($num == 1){
        return $array[$rand_keys];
    }else{
        $result = array();
        foreach($rand_keys as $key){
            $result[] = $array[$key];
        }
        return $result;
    }
}
ログイン後にコピー

この関数は、配列とオプションで必要な数の要素をパラメータとして受け取り、1 つ以上のランダムな要素値を返します。 $num パラメーターが 1 に等しい場合、関数は単一のランダムな要素値を返します。それ以外の場合は、要素値の配列が返されます。

この関数を使用すると、配列からランダムな要素を簡単に取得できます:

$fruits = array("apple", "banana", "orange", "grape");
echo rand_array($fruits); // 随机输出一个水果
print_r(rand_array($fruits, 2)); // 随机输出两个水果
ログイン後にコピー

出力結果は次のとおりです:

orange
Array ( [0] => banana [1] => grape )
ログイン後にコピー

3. 概要

組み込み関数を使用します。関数 array_rand() またはカスタム関数 rand_array() は、PHP 配列からランダムな要素を簡単に取得でき、ランダムな値を選択するさまざまな場面に適しています。実際のニーズに応じて適切な方法を選択してください。

以上がPHPで配列要素をランダムに削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート