Während des Entwicklungsprozesses ist es oft notwendig, das PHP -Array zufällig zu stören, um Funktionen wie Lotterie, zufällige Sortierung usw. zu realisieren. Manchmal möchten wir die relative Position zwischen teilweisen Elementen bei der Störung der Ordnung jedoch unverändert halten. Wie können wir nicht nur das Array stören, sondern auch die relative Reihenfolge der Elemente beibehalten? Dieser Artikel wird es für Sie ausführlich analysieren.
Die integrierte Shuffle -Funktion von PHP kann die Reihenfolge der Elemente eines Arrays zufällig mischen. Diese Funktion wirkt direkt auf das Array selbst, stört die Anordnung von Elementen und randomisiert die Reihenfolge des Arrays. Die Shuffle -Funktion selbst stört jedoch die Reihenfolge der Elemente und die relative Position von Elementen kann jedoch nicht aufrechterhalten werden.
Wenn Sie die relative Position einiger Elemente bei der Durcheinander des Arrays unverändert halten möchten, müssen Sie die Verarbeitungslogik gemäß dem Geschäftsszenario anpassen. Sie können beispielsweise Arrays gruppieren, Shuffle für jedes Gruppenelement verwenden und sie dann in ein neues Array verschmelzen. Dies stellt sicher, dass die relative Reihenfolge der Elemente in der Gruppe unverändert bleibt und die Reihenfolge zwischen den Gruppen unterbrochen wird.
$array = [1, 2, 3, 4, 5];
// verwenden shuffle Funktionen stören die Array -Reihenfolge
shuffle($array);
// Drucken Sie das durcheinandergebrachte Array
print_r($array);
Angenommen, Sie haben eine Liste von Kandidaten und müssen zufällig mehrere Gewinner ziehen. Gleichzeitig hoffen Sie, dass die relativen Ranglisten der Kandidaten mit der ursprünglichen Liste in der Liste der Gewinner übereinstimmen. Hier ist ein Beispielcode:
$candidates = array(
"Alice",
"Bob",
"Carol",
"Dave",
"Eve",
);
// verwenden shuffle Die Reihenfolge der Kandidaten stören
shuffle($candidates);
// Vor der Auslosung 10 Kandidaten
$winners = array_slice($candidates, 0, 10);
// Drucken Sie den Gewinnerkandidaten
print_r($winners);
Obwohl die Shuffle -Funktion in diesem Code verwendet wird, um die Kandidatenreihenfolge zufällig zu stören, kann eine andere Sortierlogik in nachfolgenden Operationen kombiniert werden, um sicherzustellen, dass die relative Position der Gewinner im ursprünglichen Array beibehalten wird.
In diesem Artikel wird die grundlegende Verwendung und die Einschränkungen der Verwendung von Shuffle -Funktionen zur Zufälligkeit von Arrays in PHP eingeführt, insbesondere die Tatsache, dass die relative Position von Elementen nicht direkt aufrechterhalten werden kann. Durch Beispiele und Ideen können wir Ihnen bei der flexiblen Anforderungen an Array -Störungen in tatsächlichen Projekten helfen und die Entwicklungsbedürfnisse komplexerer Szenarien erfüllen.