Heim >Backend-Entwicklung >PHP-Tutorial >Wie berechnet man das kartesische Produkt mehrerer Arrays in PHP?
Beim Umgang mit mehreren Arrays kann es erforderlich sein, eine Tabelle mit allen möglichen Kombinationen von Elementen daraus zu erstellen Arrays unter Vermeidung von Wiederholungen. Diese mathematische Operation ist als kartesisches Produkt bekannt.
Um diese Herausforderung in PHP zu bewältigen, sollten Sie die Verwendung der folgenden Funktion in Betracht ziehen:
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);
Diese Funktion akzeptiert Argumente variabler Länge, die jeweils ein Array darstellen . Es berechnet das kartesische Produkt rekursiv, indem es ein Element aus dem ersten Array auswählt und es mit allen möglichen kartesischen Produkten der verbleibenden Arrays kombiniert.
Das Ergebnis ist ein verschachteltes Array, das jede eindeutige Kombination von Elementen aus den Eingabearrays enthält. Im gegebenen Beispiel ergibt das kartesische Produkt zweier Arrays:
Array 0 Array 1 apples steve apples bob pears steve pears bob
Diese Lösung ist nicht nur für Arrays mit zwei Dimensionen effektiv, sondern kann auch auf eine beliebige Anzahl von Arrays erweitert werden. Es bietet eine prägnante und elegante Möglichkeit, das kartesische Produktproblem in PHP zu lösen.
Das obige ist der detaillierte Inhalt vonWie berechnet man das kartesische Produkt mehrerer Arrays in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!