「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP で 1 次元配列内の要素の可能なすべての組み合わせと順列を生成するにはどうすればよいですか?

PHP で 1 次元配列内の要素の可能なすべての組み合わせと順列を生成するにはどうすればよいですか?

2024 年 11 月 15 日に公開
ブラウズ:268

How can I generate all possible combinations and permutations of elements within a one-dimensional array in PHP?

PHP: 1 次元配列の可能なすべての組み合わせを取得する方法

この記事では、配列内の要素の可能なすべての組み合わせを取得する方法について詳しく説明します。 PHP における 1 次元配列。他のソリューションとは対照的に、このアプローチでは、組み合わせと順列の両方が確実に考慮されます。

問題ステートメント

文字列または数値の配列が与えられた場合、目標は、要素の可能なすべての組み合わせを生成することです。さまざまな取り決めを考慮して。たとえば、「Alpha Beta」と「Beta Alpha」は、出力に含める必要がある別個の組み合わせです。

PHP ソリューション

提供される PHP ソリューションは、再帰的深さ優先検索アルゴリズムを採用しています。

解決策の内訳

  • Depth_picker 関数は、初期配列、空の文字列、空の配列参照を使用して呼び出されます。
  • 再帰的にループします。配列を介して各要素を現在の結果文字列の末尾に追加します。
  • 一時文字列に要素がある場合は常に、それが結果に追加されますarray.
  • 入力配列に要素がまだ残っている場合、関数は更新された配列と一時文字列を使用して自分自身を呼び出します。
  • 要素がもう残っていない場合は、完全な組み合わせが収集配列に追加されます。

出力

指定されたコードは、次の出力を生成します。これには、要素のすべての組み合わせと順列が含まれます。指定された配列:

Array
(
    [0] =>  Alpha
    [1] =>  Alpha Beta
    [2] =>  Alpha Beta Gamma
    [3] =>  Alpha Beta Gamma Sigma
    [4] =>  Alpha Beta Sigma
    [5] =>  Alpha Beta Sigma Gamma
    [6] =>  Alpha Gamma
    [7] =>  Alpha Gamma Beta
    [8] =>  Alpha Gamma Beta Sigma
    [9] =>  Alpha Gamma Sigma
    [10] =>  Alpha Gamma Sigma Beta
    [11] =>  Alpha Sigma
    [12] =>  Alpha Sigma Beta
    [13] =>  Alpha Sigma Beta Gamma
    [14] =>  Alpha Sigma Gamma
    [15] =>  Alpha Sigma Gamma Beta
    [16] =>  Beta
    [17] =>  Beta Alpha
    [18] =>  Beta Alpha Gamma
    [19] =>  Beta Alpha Gamma Sigma
    [20] =>  Beta Alpha Sigma
    [21] =>  Beta Alpha Sigma Gamma
    [22] =>  Beta Gamma
    [23] =>  Beta Gamma Alpha
    [24] =>  Beta Gamma Alpha Sigma
    [25] =>  Beta Gamma Sigma
    [26] =>  Beta Gamma Sigma Alpha
    [27] =>  Beta Sigma
    [28] =>  Beta Sigma Alpha
    [29] =>  Beta Sigma Alpha Gamma
    [30] =>  Beta Sigma Gamma
    [31] =>  Beta Sigma Gamma Alpha
    [32] =>  Gamma
    [33] =>  Gamma Alpha
    [34] =>  Gamma Alpha Beta
    [35] =>  Gamma Alpha Beta Sigma
    [36] =>  Gamma Alpha Sigma
    [37] =>  Gamma Alpha Sigma Beta
    [38] =>  Gamma Beta
    [39] =>  Gamma Beta Alpha
    [40] =>  Gamma Beta Alpha Sigma
    [41] =>  Gamma Beta Sigma
    [42] =>  Gamma Beta Sigma Alpha
    [43] =>  Gamma Sigma
    [44] =>  Gamma Sigma Alpha
    [45] =>  Gamma Sigma Alpha Beta
    [46] =>  Gamma Sigma Beta
    [47] =>  Gamma Sigma Beta Alpha
    [48] =>  Sigma
    [49] =>  Sigma Alpha
    [50] =>  Sigma Alpha Beta
    [51] =>  Sigma Alpha Beta Gamma
    [52] =>  Sigma Alpha Gamma
    [53] =>  Sigma Alpha Gamma Beta
    [54] =>  Sigma Beta
    [55] =>  Sigma Beta Alpha
    [56] =>  Sigma Beta Alpha Gamma
    [57] =>  Sigma Beta Gamma
    [58] =>  Sigma Beta Gamma Alpha
    [59] =>  Sigma Gamma
    [60] =>  Sigma Gamma Alpha
    [61] =>  Sigma Gamma Alpha Beta
    [62] =>  Sigma Gamma Beta
    [63] =>  Sigma Gamma Beta Alpha
)
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3