ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列の非繰り返しサブセットをすべて効率的に見つけるにはどうすればよいですか?
PHP での配列のサブセットの検索
リレーショナル データベースを扱う場合、属性のすべてのサブセットのクロージャを決定するのは複雑なタスクになる可能性があります。この記事では、PHP で非反復サブセットを効率的に見つける方法について説明します。
配列の定義
属性のセットを表す配列 $ATTRIBUTES を定義します。
$ATTRIBUTES = ['A', 'B', 'C', 'D'];
サブセットの生成
$ATTRIBUTES の可能なすべてのサブセットを生成するには、powerSet 関数を利用します。
function powerSet(array $array) : array { // Start with the empty set $results = [[]]; // Iterate over the array elements foreach ($array as $element) { // Create new combinations by adding the element to existing combinations foreach ($results as $combination) { $results[] = [...$combination, $element]; } } return $results; }
使用例
$subsets = powerSet($ATTRIBUTES) を実行すると、次のサブセットが出力されます:
[['',''],['A'],['B'],['A','B'],['C'],['A','C'],['B','C'],['A','B','C'],['D'],['A','D'],['B','D'],['A','B','D'],... ]
これは、配列の非反復サブセットをすべて効率的に検索して保存する方法を示しています。 PHPで。このアプローチは、リレーショナル データベース スキーマの属性サブセットのクロージャを処理するための堅牢なソリューションを提供します。
以上がPHP で配列の非繰り返しサブセットをすべて効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。