ホームページ > バックエンド開発 > PHPチュートリアル > PHPで複数の配列のデカルト積を計算するにはどうすればよいですか?

PHPで複数の配列のデカルト積を計算するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-14 12:15:02
オリジナル
939 人が閲覧しました

How to Calculate the Cartesian Product of Multiple Arrays in PHP?

複数の配列のデカルト積: 包括的なソリューション

複数の配列を扱う場合、これらの要素の可能なすべての組み合わせを含むテーブルを生成する必要が生じる場合があります。繰り返しを避けながら配列します。この数学演算はデカルト積として知られています。

PHP でこの課題に対処するには、次の関数の利用を検討してください:

function array_cartesian() {
    $_ = func_get_args();
    if(count($_) == 0)
        return array(array());
    $a = array_shift($_);
    $c = call_user_func_array(__FUNCTION__, $_);
    $r = array();
    foreach($a as $v)
        foreach($c as $p)
            $r[] = array_merge(array($v), $p);
    return $r;
}

$cross = array_cartesian(
    array('apples', 'pears',  'oranges'),
    array('steve', 'bob')
);

print_r($cross);
ログイン後にコピー

この関数は可変長の引数を受け取り、それぞれが配列を表します。 。最初の配列から要素を選択し、それを残りの配列のすべての可能なデカルト積と組み合わせることで、デカルト積を再帰的に計算します。

結果は、入力配列の要素の一意の組み合わせをすべて含むネストされた配列になります。指定された例では、2 つの配列のデカルト積は次のようになります。

Array 0            Array 1
apples             steve
apples             bob
pears              steve
pears              bob
ログイン後にコピー

このソリューションは、2 次元の配列に有効であるだけでなく、任意の数の配列を処理するように拡張することもできます。これは、PHP でデカルト積の問題を解決するための簡潔かつエレガントな方法を提供します。

以上がPHPで複数の配列のデカルト積を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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