ホームページ >バックエンド開発 >PHPの問題 >PHPで配列のデカルト積を実装する方法

PHPで配列のデカルト積を実装する方法

藏色散人
藏色散人オリジナル
2021-12-07 09:20:082170ブラウズ

配列のデカルト積を実装する

php メソッド: 1. PHP サンプル ファイルを作成します; 2. 配列を定義します; 3. "関数 dikaer($arr){ を通じて配列のデカルト積を実装します。 ..}" 計算だけで十分です。

PHPで配列のデカルト積を実装する方法

#この記事の動作環境: Windows 7 システム、PHP バージョン 7.4、Dell G3 コンピューター。

PHP は配列のデカルト積をどのように実装しますか?

PHP は配列のデカルト積演算の例を実装します

PHP は配列のデカルト積を実装します。実際に配列 これは非常に便利です。例えば、製品の仕様を計算するときによく使用されます。実装方法は次のとおりです。

$arr = array(
  array(2),
  array(6,7),
  array('a','b','c')
);
function dikaer($arr){
 $arr1 = array();
 $result = array_shift($arr);
 while($arr2 = array_shift($arr)){
  $arr1 = $result;
  $result = array();
  foreach($arr1 as $v){
   foreach($arr2 as $v2){
    if(!is_array($v))$v = array($v);
    if(!is_array($v2))$v2 = array($v2);
    $result[] = array_merge_recursive($v,$v2);
   }
  }
 }
 return $result;
}

上記の例の出力結果は次のとおりです。

Array
(
  [0] => Array
    (
      [0] => 2
      [1] => 6
      [2] => a
    )
  [1] => Array
    (
      [0] => 2
      [1] => 6
      [2] => b
    )
  [2] => Array
    (
      [0] => 2
      [1] => 6
      [2] => c
    )
  [3] => Array
    (
      [0] => 2
      [1] => 7
      [2] => a
    )
  [4] => Array
    (
      [0] => 2
      [1] => 7
      [2] => b
    )
  [5] => Array
    (
      [0] => 2
      [1] => 7
      [2] => c
    )
)

出力する必要がある場合は、文字列形式の結果を次のようなコードに変更できます。

function dikaer($arr){
 $arr1 = array();
 $result = array_shift($arr);
 while($arr2 = array_shift($arr)){
  $arr1 = $result;
  $result = array();
  foreach($arr1 as $v){
   foreach($arr2 as $v2){
    $result[] = $v.','.$v2;
   }
  }
 }
 return $result;
}

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

Array
(
  [0] => 2,6,a
  [1] => 2,6,b
  [2] => 2,6,c
  [3] => 2,7,a
  [4] => 2,7,b
  [5] => 2,7,c
)

推奨学習: "

PHP ビデオ チュートリアル "

以上がPHPで配列のデカルト積を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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