Heim > Artikel > Backend-Entwicklung > Eine Erklärung, wie man das kartesische Produkt mehrerer Mengen in PHP berechnet
Kartesisches Produkt bezieht sich auf das kartesische Produkt (kartesisches Produkt) zweier Mengen X und Y in der Mathematik, auch als direktes Produkt bekannt, ausgedrückt als X*Y, wobei das erste Objekt X ist Y und das zweite Objekt ist eines der Mitglieder aller möglichen geordneten Paare von Y.
Angenommen, dass die Menge A={a,b} und die Menge B={0,1,2}, dann das kartesische Produkt der beiden Mengen ist {(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}
Idee: Berechnen Sie zunächst das kartesische Produkt des ersten Satzes und des zweiten Satzes und speichern Sie das Ergebnis als neuen Satz.
Dann wird der neue Satz verwendet, um das kartesische Produkt mit dem nächsten Satz zu berechnen, und der Zyklus wird fortgesetzt, bis das kartesische Produkt mit dem letzten Satz berechnet wird.
Zum Beispiel gibt es die folgenden Sätze, die zur Berechnung des kartesischen Produkts
<?php$sets = array( array('白色','黑色','红色'), array('透气','防滑'), array('37码','38码','39码'), array('男款','女款') );?>
Der Code lautet wie folgt:
<?php/** * php 计算多个集合的笛卡尔积 * Date: 2017-01-10 * Author: fdipzone * Ver: 1.0 * * Func * CartesianProduct 计算多个集合的笛卡尔积 *//** * 计算多个集合的笛卡尔积 * @param Array $sets 集合数组 * @return Array */function CartesianProduct($sets){ // 保存结果 $result = array(); // 循环遍历集合数据 for($i=0,$count=count($sets); $i<$count-1; $i++){ // 初始化 if($i==0){ $result = $sets[$i]; } // 保存临时数据 $tmp = array(); // 结果与下一个集合计算笛卡尔积 foreach($result as $res){ foreach($sets[$i+1] as $set){ $tmp[] = $res.$set; } } // 将笛卡尔积写入结果 $result = $tmp; } return $result; }// 定义集合$sets = array( array('白色','黑色','红色'), array('透气','防滑'), array('37码','38码','39码'), array('男款','女款') );$result = CartesianProduct($sets); print_r($result);?>
Ausgabe:
Array( [0] => 白色透气37码男款 [1] => 白色透气37码女款 [2] => 白色透气38码男款 [3] => 白色透气38码女款 [4] => 白色透气39码男款 [5] => 白色透气39码女款 [6] => 白色防滑37码男款 [7] => 白色防滑37码女款 [8] => 白色防滑38码男款 [9] => 白色防滑38码女款 [10] => 白色防滑39码男款 [11] => 白色防滑39码女款 [12] => 黑色透气37码男款 [13] => 黑色透气37码女款 [14] => 黑色透气38码男款 [15] => 黑色透气38码女款 [16] => 黑色透气39码男款 [17] => 黑色透气39码女款 [18] => 黑色防滑37码男款 [19] => 黑色防滑37码女款 [20] => 黑色防滑38码男款 [21] => 黑色防滑38码女款 [22] => 黑色防滑39码男款 [23] => 黑色防滑39码女款 [24] => 红色透气37码男款 [25] => 红色透气37码女款 [26] => 红色透气38码男款 [27] => 红色透气38码女款 [28] => 红色透气39码男款 [29] => 红色透气39码女款 [30] => 红色防滑37码男款 [31] => 红色防滑37码女款 [32] => 红色防滑38码男款 [33] => 红色防滑38码女款 [34] => 红色防滑39码男款 [35] => 红色防滑39码女款 )
In diesem Artikel wird erläutert, wie PHP das kartesische Produkt mehrerer Mengen berechnet. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Über Ajax Cross -Domänenzugriff Eine Erklärung der Lösung für Cookie-Verlust
Eine Erklärung der Berechnungsmethode von key_len in MySQL erklären
Das obige ist der detaillierte Inhalt vonEine Erklärung, wie man das kartesische Produkt mehrerer Mengen in PHP berechnet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!