php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.12.2011, 10:24  
Benutzer
 
Registriert seit: 15.11.2011
Beiträge: 44
PHP-Kenntnisse:
Anfänger
tschroeder befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Mehrdimensionales Array sortieren

Hallo zusammen,

ich habe vor ein paar Tagen schon einen Beitrag gepostet, weil ich wissen wollte, ob man in PHP Arrays sortieren kann (siehe http://www.php.de/php-einsteiger/862...sortieren.html (Arrays zusammenfügen / Arrays sortieren)).

Ich habe mir jetzt den Befehl "array_multisort" angesehen, komme aber mit der Beschreibung und den Beispielen auf http://www.php.net/manual/de/functio...-multisort.php nicht klar.

Die Situation ist folgende:

Ich habe ein einziges Array, das mehrere Dimensionen hat. Ganz genau sind es drei Dimensionen. Die Daten kommen aus einem HTML-Endlosformular.

Befüllt wird das Array folgendermaßen:

PHP-Code:
$var_array_list["Lieferscheinnummer"][$var_row]["controlname"]     = ...;
$var_array_list["Lieferscheinnummer"][$var_row]["value"]         = ...;
$var_array_list["Lieferscheinnummer"][$var_row]["checkvalue"]     = ...;

$var_array_list["Lieferdatum"][$var_row]["controlname"]     = ...;
$var_array_list["Lieferdatum"][$var_row]["value"]         = ...;
$var_array_list["Lieferdatum"][$var_row]["checkvalue"]     = ...;

usw
$var_row ist der Zeilenzähler, mit dem ich das Array befülle. Die Werte, um die es geht und nach denen sortiert werden soll, sind im Element "value".

Ich habe mir „array_multisort“ angesehen und habe einfach mal testweise angefangen, zu sortieren. Beispiel:

PHP-Code:
array_multisort($var_array_list["Lieferscheinnummer"], SORT_DESC); 
Ich sehe im HTML-Formular, dass PHP die Lieferscheinnummern sortiert, aber eben nur die Lieferscheinnummern. Die anderen Spalten werden nicht angefasst, bedeutet, es werden nur die Werte in einer Spalte verändert.

Was ich möchte (und nicht weiß, ob es geht), wäre, dass das Array ähnlich wie bei einer SQL-SELECT-Abfrage mit ORDER BY sortiert wird.

Habt Ihr einen Tipp für mich?

Gruß

Thomas
tschroeder ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.12.2011, 10:44  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard

array_multisort habe ich selber noch nie benutzt. Die Doku unter php.net gibt hier aber ein für meine Begriffe gutes Beispiel.

PHP-Code:
<?php
$ar 
= array(
array(
"10"11100100"a"),
array( 
12"2"31)
);
array_multisort($ar[0], SORT_ASCSORT_STRING,
$ar[1], SORT_NUMERICSORT_DESC);
Hier werden zwei Ebenen eines mehrdimensionalen Arrays, die selber Array sind und somit quasi weitere Dimensionen darstellen, entsprechend mit Sortierungsoptionen an array_multisort übergeben. Das müßtest Du doch auf Deinen Fall übertragen können?!
__________________
Es ist schon alles gesagt. Nur noch nicht von allen.
drsoong ist offline   Mit Zitat antworten
Alt 13.12.2011, 12:26  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

ORDER BY sortiert aber nur zweidimensional. Wenn du dein Array nach $var_array_list[$var_row]["Lieferdatum"]["value"] (klar, ist dann im HTML nicht mehr so einfach) umstellst, kannst du das ganz einfach mit usort() sortieren, siehe Manual oder den ersten Kommentar im Manual zu array_multisort.
chorn ist offline   Mit Zitat antworten
Alt 14.12.2011, 18:26  
sph
Neuer Benutzer
 
Registriert seit: 14.12.2011
Beiträge: 16
PHP-Kenntnisse:
Anfänger
sph befindet sich auf einem aufstrebenden Ast
Standard

Hallo tschroeder,

ich bin mir nicht so sicher ob dir das hilft, aber ich denke das Sortieren könnte einfacher werden wenn du deinen Array umstellst. Oder muss der zwingend so in dieser Form sein?

Ich vermute jedenfalls dass eine Struktur wie z. B:
PHP-Code:
$var_array_list["Lieferscheinnummer"]["controlname"][$var_row]     = ...;
$var_array_list["Lieferscheinnummer"]["value"][$var_row]           = ...;
$var_array_list["Lieferscheinnummer"]["checkvalue"][$var_row]      = ...; 
weniger Probleme macht. Wenn ich mir das so ansehe könnte die Angelegenheit vielleicht auch komplett mit einem zweidimensionalen Array gehandhabt werden, etwa so:

PHP-Code:
$var_array_list["nr_ctrlname"][$var_row]           = ...;
$var_array_list["nr_value"][$var_row]              = ...;
$var_array_list["nr_checkvalue"][$var_row]         = ...;
$var_array_list["date_ctrlname"][$var_row]         = ...;
$var_array_list["date_value"][$var_row]            = ...;
$var_array_list["date_checkvalue"][$var_row]       = ...; 



...is je nach Verwendungszweck vielleicht kompletter Unsinn, aber vielleicht hilft dir das ja irgendwie weiter


greets!
sph ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Mehrdimensionales Array sortieren JoJota PHP Einsteiger 7 29.11.2011 08:41
array sortieren? thedarkknight PHP Einsteiger 10 16.05.2011 03:25
[Erledigt] Mehrdimensionalem Array umformen, Index neu setzen und anschließend sortie wooha PHP Einsteiger 3 26.04.2011 12:08
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
Array sortieren... BlackScorp PHP Tipps 2010 15 12.07.2010 08:20
Feed in Datenbank eintragen (Formate: json, php serialized, xml) high_five Datenbanken 5 17.06.2010 03:04
[Erledigt] Tabellen die sich selbst referenzieren Squall PHP Tipps 2009 19 04.08.2009 21:33
[Erledigt] Array Sortieren beist PHP Tipps 2009 4 10.07.2009 08:53
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
mehrdimensionales Array als HTML-Formular mindhead PHP Tipps 2008 3 11.04.2008 15:25
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
mehrdimensionales Array sortieren PHP Tipps 2005 5 29.04.2005 20:38
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
mehrdimensionales Array sortieren Simbo PHP Tipps 2004 30 29.07.2004 17:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array sortieren order by sql

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum