„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich alle eindeutigen Kombinationen von 5 Zahlen aus einem Array von 7 Zahlen (1, 2, 3, 4, 5, 6, 7) unter Verwendung von PHP erzeugen?

Wie kann ich alle eindeutigen Kombinationen von 5 Zahlen aus einem Array von 7 Zahlen (1, 2, 3, 4, 5, 6, 7) unter Verwendung von PHP erzeugen?

Gepostet am 2025-03-25
Durchsuche:420

How can I generate all unique combinations of 5 numbers from an array of 7 numbers (1, 2, 3, 4, 5, 6, 7) using PHP?

php array combinations

Sie erhalten ein Array von 7 Zahlen (1,2,3,4,5,6,7). Ziel ist es, alle möglichen Kombinationen von 5 Zahlen aus diesem Array zu finden. Jede Kombination muss einzigartig sein, was bedeutet, dass keine Duplikate zulässig sind. Zum Beispiel werden (1,2,3,4,5) und (5,4,3,2,1) als dieselbe Kombination angesehen. So funktioniert es:

Klassenkombinationen implementiert Iterator { geschützt $ c = null; // Kombination von Zahlen geschützt $ s = null; // Quellarray geschützt $ n = 0; // Anzahl der Elemente im Array geschützt $ k = 0; // Anzahl der Elemente in jeder Kombination geschützt $ pos = 0; // aktuelle Position des Iterators Funktion __construct ($ s, $ k) { // Initialisieren Sie die Klasseneigenschaften if (is_array ($ s)) { $ this-> s = array_values ​​($ s); $ this-> n = count ($ this-> s); } anders { $ this-> S = (String) $ S; $ this-> n = strlen ($ this-> s); } $ this-> k = $ k; $ this-> rewind (); } // Geben Sie den aktuellen Schlüssel zurück Funktion key () { kehren Sie $ this-> pos zurück; } // den aktuellen Wert zurückgeben Funktion current () { $ r = array (); für ($ i = 0; $ i k; $ i) $ r [] = $ this-> s [$ this-> c [$ i]]; return is_array ($ this-> s)? $ r: implode ('', $ r); } // zur nächsten Kombination wechseln Funktion next () { if ($ this-> _ next ()) $ this-> pos; anders $ this-> pos = -1; } // Rückspulen Sie die erste Kombination zurück Funktion rewind () { $ this-> c = Bereich (0, $ this-> k); $ this-> pos = 0; } // Überprüfen Sie, ob der Iterator gültig ist (an einer gültigen Position) Funktion valid () { $ this-> pos> = 0 zurückgeben; } // wechseln Sie zur nächsten Kombination (interne Funktion) geschützte Funktion _next () { $ i = $ this-> k - 1; while ($ i> = 0 & amp; & amp; $ this-> c [$ i] == $ this-> n-$ this-> k $ i) $ i--; if ($ i c [$ i]; während ($ i k - 1) $ this-> c [$ i] = $ this-> c [$ i-1] 1; zurückkehren; } } // Erstellen Sie ein Kombinationsobjekt für das angegebene Array und die Anzahl der Elemente pro Kombination $ combinations = neue Kombinationen ("1234567", 5); // über alle möglichen Kombinationen iterieren und ausdrucken foreach ($ combinations als $ substring) echo $ substring, ''; Dieser Code erzeugt die folgende Ausgabe:

12345 12346 12347 12356 12357 12367 12456 12457 12467 12567 13456 13457 13467 13567 24567 34567

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3