Mischen Sie 2 PHP-Arrays auf die gleiche Weise

8

Ich habe das zum Beispiel:

%Vor%

Wie kann ich sie mischen, um etwas wie:

zu bekommen %Vor%

Oder eine andere zufällige Reihenfolge, aber mit dem gleichen "Zufallsfaktor" in beiden?

Zum Beispiel möchte ich, dass $array['one'][0] und $array['two'][0] gemischt werden, um $array['one'][x] und $array['two'][x] zu erhalten ( x ist ein zufälliger Schlüssel, aber der SAME auf beiden Arrays).

    
phollz 06.02.2011, 05:26
quelle

6 Antworten

3

So etwas könnte funktionieren. Es ähnelt der Antwort von Mimikry, außer dass diese Funktion auch dann funktioniert, wenn Sie doppelte Werte in Array 1 haben (dieses verwendet keine Werte von Array eins als Schlüssel des temporären Arrays).

Angenommen, beide Arrays haben die gleiche Größe.

%Vor%     
poisson 06.02.2011, 16:08
quelle
17
%Vor%
  • Funktioniert mit Arrays mit Elementen eines beliebigen Typs (auch Objekte und Arrays).
  • Dieser Weg kann mit einer beliebigen Anzahl von Arrays (nicht nur zwei) verwendet werden.
  • Funktioniert mit doppelten Werten.
  • Sauberer Code.
Adam Puza 30.01.2012 21:35
quelle
0

Ich hoffe, dass ich dich richtig verstehe.

In Ihrem obigen Beispiel sollte dieser Code funktionieren. Aber es ist ziemlich hacky ...

%Vor%

var_dump ($ array):

%Vor%     
Mimikry 06.02.2011 11:02
quelle
0

Die beste Praxis, imho, ist wie folgt:

%Vor%

Dies ist ein klarer Code und sollte schnell sein. Keine Notwendigkeit, das Rad wie in einigen anderen Antworten neu zu erfinden.

    
Jouke Waleson 06.02.2011 17:47
quelle
0

Dies ist kein Beispiel mit mehrdimensionalen Arrays, aber es funktioniert hervorragend, um mehrere normale Arrays auf die gleiche Weise und mit Shuffle zu sortieren. Vielleicht könnte es auch für mehrdimensionale Arrays angepasst werden. Es wird davon ausgegangen, dass alle Arrays die gleiche Länge haben.

%Vor%

Damit erhalten Sie neue Arrays, die alle auf die gleiche Weise sortiert sind. Sie könnten dann die alten Arrays gleich den neuen setzen oder sie intakt halten.

    
Dante Cullari 14.05.2014 18:05
quelle
-1

Sie wissen nicht genau, was Sie zu tun versuchen, aber Ihre beste Wette ist wahrscheinlich, Array 1 und Array 2 in ein mehrdimensionales Array und dann zufällig das primäre Array zu platzieren. Das wird Ihnen eine zufällige Anordnung von Werten geben, aber innerhalb jedes Schlüssels werden die Werte jedes Arrays sein. Wir könnten Ihnen spezifischere Antworten geben, wenn Sie ein bisschen genauer erklären können, was genau Sie tun.

    
techtheatre 06.02.2011 05:43
quelle

Tags und Links