Forum: PC-Programmierung PHP Array zahlen sortieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von frage (Gast)


Lesenswert?

Hallo,
in PHP Zahlen in einem Array zu sortieren ist nicht schwer. Hierzu gibt 
es etliche Beispiele im Internet.

Wenn ich nun aber folgendes array hätte

$zahl[1]=12;
$zahl[2]=1;
$zahl[3]=100;
$zahl[4]=34;

Würde es folgende Ausgabe nachdem Sortieren sein:

1
12
34
100

Wie bekomme ich aber heraus, dass die erste Zahl vom Array 2, die zweite 
Zahl vom Array 1, die dritte Zahl vom Array 4 und die letzte Zahl vom 
Array 3 stammt?

von N. M. (mani)


Lesenswert?

Kommen zahlen auch mehrfach vor?
Wenn nein, dann gibt es bestimmt eine find() Funktion.

Ansonsten könnte man mit usort() evtl eine eigene Sortierfunktion 
schreiben...

: Bearbeitet durch User
von Herbert B. (Gast)


Lesenswert?

Was meinst du mit "vom Array 1, vom Array2 , ....". Das sind keine 4 
unterschiedliche Arrays, das sind die indices eines einzige Arrays.

von Sebastian D. (minimalist)


Lesenswert?

Hat PHP dafür nicht ksort() ?

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Könnte man mit asort() machen, aber mit numerischen Indexes ist's nicht 
ganz so einfach, PHP hinterher mitzuteilen, ob man auf den Index oder 
die Stelle in der Reihenfolge der Elemente nach der Sortierung zugreifen 
möchte.

Vielleicht mal das Manual lesen, gibt viele Sortierfunktionen in PHP.
https://www.php.net/manual/de/array.sorting.php

von HildeK (Gast)


Lesenswert?

frage schrieb:
> Wie bekomme ich aber heraus, dass die erste Zahl vom Array 2, die zweite
> Zahl vom Array 1, die dritte Zahl vom Array 4 und die letzte Zahl vom
> Array 3 stammt?

Wenn der Speicherplatz keine Rolle spielt: ein zweites Dummy-Array 
aufmachen, das initial den hochgezählten Index enthält. Dann dieses 
Array einfach bei den Umsortierarbeiten der eigentlichen Daten mit 
umsortieren.
Unter dem Index 1 steht dann im Dummy-Array die 2, unter Index 2 die 
Zahl 1 usw.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.