ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列がシャッフルされた後に要素の一意性を確保するにはどうすればよいですか?

PHP 配列がシャッフルされた後に要素の一意性を確保するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-05-02 22:27:01536ブラウズ

PHP で配列の順序を乱して要素の一意性を確保する方法は次のとおりです。 array_unique() 関数を使用します。まず順序を乱し、次に重複する要素を削除します。 array_diff() 関数を使用します。2 つの配列間の違いを見つけ、他の配列と同じ要素を削除します。

PHP 配列がシャッフルされた後に要素の一意性を確保するにはどうすればよいですか?

PHP 配列の順序をシャッフルした後に要素の一意性を確保する方法

PHP では、配列の順序をシャッフルします。 array は要素の順序を破壊しますが、要素の一意性は保証できません。一意の要素を含む配列が必要で、順序が混乱している場合は、次の方法を使用できます。

方法 1: array_unique()Function

を使用します。

array_unique()この関数は、配列から重複した要素を削除できますが、要素の元の順序は保持します。したがって、まず配列の順序を乱してから、array_unique() 関数を使用して重複要素を削除します。

<?php
$array = [1, 2, 3, 4, 5, 1, 2, 3];

// 打乱数组顺序
shuffle($array);

// 去除重复元素
$unique_array = array_unique($array);

print_r($unique_array);
?>

方法 2: array_diff を使用する() 関数

array_diff()この関数は、2 つ以上の配列間の違いを見つけることができます。つまり、最初の配列に存在しない要素を返します。他の配列でも。この機能を使用すると、ある配列から別の配列と同じ要素を削除できます。

<?php
$array1 = [1, 2, 3, 4, 5, 1, 2, 3];
$array2 = [2, 3, 4];

// 打乱数组1的顺序
shuffle($array1);

// 求出array1中不存在于array2中的元素
$unique_elements = array_diff($array1, $array2);

print_r($unique_elements);
?>

実際的なケース

必要なユーザー ID を含む配列があるとします。ランダム化する 各ユーザー ID をソートして一意性を確保します。次のコードを使用できます:

<?php
$user_ids = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// 打乱用户ID的顺序
shuffle($user_ids);

// 去除重复的用户ID
$unique_user_ids = array_unique($user_ids);

// 输出随机排序的唯一用户ID
print_r($unique_user_ids);
?>

以上がPHP 配列がシャッフルされた後に要素の一意性を確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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