php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-06-2005, 17:56
alkaluropus
 Newbie
Links : Onlinestatus : alkaluropus ist offline
Registriert seit: Dec 2003
Beiträge: 21
alkaluropus ist zur Zeit noch ein unbeschriebenes Blatt
Standard Mehrdimensionalen Array sortieren

Hallo,

ich habe eine XML in einen komplexen Array eingelesen, und würde
die einzelnen [EVENT]-Elemente nach der [id] aus dem [Service]-Array sortieren.
Den Aufbau des Array sieht man im folgenden.

Code:
Array
(
    [EVENT] => Array
        (
            [0] => Array
                (
                    [id] => 31989
                    [start] => 16:00:00
                    [stop] => 16:15:00
                    [duration] => 00H15M00S
                    [Service] => Array
                        (
                            [id] => 28208
                        )

                    [title] => Array
                        (
                            [lang] => deu
                            [_content] => Text2
                        )

                )

            [1] => Array
                (
                    [id] => 39496
                    [start] => 14:00:00
                    [stop] => 18:00:00
                    [duration] => 04H00M00S
                    [Service] => Array
                        (
                            [id] => 28201
                        )

                    [title] => Array
                        (
                            [lang] => deu
                            [_content] => Textbla
                        )

                )

             [2] => Array
                 
                 ... usw.
Nimmt man für so etwas multisort oder definiert sich per usort eine
eigene Sortierreihenfolge? Bin für Tipps u. ev. ein kleines Codebeispiel
zur Veranschaulichung dankbar.

Viele Grüße,
Matthias
Mit Zitat antworten
  #2 (permalink)  
Alt 20-06-2005, 18:31
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Mehrdimensionalen Array sortieren

Zitat:
Original geschrieben von alkaluropus
Nimmt man für so etwas multisort oder definiert sich per usort eine
eigene Sortierreihenfolge?
man nimmt in aller erster linie mal die boardsuche
__________________
Kissolino.com
Mit Zitat antworten
  #3 (permalink)  
Alt 21-06-2005, 09:39
Benutzerbild von Meillo Meillo
 Registrierter Benutzer
Links : Onlinestatus : Meillo ist offline
Registriert seit: Mar 2004
Ort: Balmora
Beiträge: 1.869
Meillo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

welchen Sortieralgo du letztendlich verwendest bleibt dir selbst überlassen - bei so kleinen Dingen sind die Geschwindigkeitsunterschiede nicht so groß.
Wichtig ist nur, dass du ihn korrekt auf die Mehrdimensionalität anwendest
__________________
Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.

btw: REAL PROGRAMMERs aren't afraid to use GOTOs!

Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...
(from here)
Mit Zitat antworten
  #4 (permalink)  
Alt 21-06-2005, 09:55
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

guckst du hier - hat mir sehr geholfen...

http://www.php-resource.de/forum/sho...ight=multisort
Mit Zitat antworten
  #5 (permalink)  
Alt 21-06-2005, 11:50
alkaluropus
 Newbie
Links : Onlinestatus : alkaluropus ist offline
Registriert seit: Dec 2003
Beiträge: 21
alkaluropus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hmm - ich bin noch am basteln, habs leider noch nicht hinbekommen.

Wichtig wäre ja auch, daß zwei Sortiervorgänge nacheinander
ablaufen, so daß zuerst die Arrays nach dem Element
$data["Event"][$i]["Service]["id] und nach dieser Sortierung
noch nach $data["EVENT"][$i]["start"] sortieren lassen.

Wenn man das also mit Zeilen u. Spalten einer Tabelle vergleichen
kann, so als wenn man in Excel "Sortieren nach" und im Feld
darunter gleich "Anschliessend nach" wählt. Nicht das beste
Beispiel aber es beschreibt was ich erreichen will.

Viele Grüße
Matthias
Mit Zitat antworten
  #6 (permalink)  
Alt 21-06-2005, 12:18
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die Funktion von MrHappiness macht genau das, deswegen hab ich dir den Link gepostet - schau doch einfach mal. Da brauchste nur nen array übergen wie sortiert werden soll...
Mit Zitat antworten
  #7 (permalink)  
Alt 21-06-2005, 13:47
alkaluropus
 Newbie
Links : Onlinestatus : alkaluropus ist offline
Registriert seit: Dec 2003
Beiträge: 21
alkaluropus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

Zitat:
Original geschrieben von prego
die Funktion von MrHappiness macht genau das, deswegen hab ich dir den Link gepostet - schau doch einfach mal. Da brauchste nur nen array übergen wie sortiert werden soll...
OK - habe es mir mal genau durchgeschaut, und du hast recht. Allerdings
habe ich noch das Problem, das ich nicht weiß wie ich meine beiden
Faktoren $sort["Event"][$i]["Service]["id]
und $sort["EVENT"][$i]["start"] in die $order einbaue. Ist einfach eine
Syntaxfrage.


PHP-Code:

function multisort($array$criterias)
{
  
$sort_rule '';
  foreach(
$criterias as $criteria)
  {
    foreach(
$array as $row)
      
$sort_array[$criteria['col']][] = $row[$criteria['col']];
    
$sort_rule .= '$sort_array['.
      (
is_numeric($criteria['col']) ? $criteria['col'] : "'".$criteria['col']."'").
      
'], '.$criteria['dir'].',';
  }
  eval(
"array_multisort($sort_rule".' $array);');
  return 
$array;
}


$order = array(
    array(
        
'col' => 'id',
        
'dir' => SORT_ASC
    
)
    array(
        
'col' => 'start',
        
'dir' => SORT_ASC
    
)
);

echo 
"<pre>";
 
print_r($sort);
echo 
"</pre>";

echo 
"<pre>";
 
print_r(multisort($sort$order));
echo 
"</pre>"

Viele Grüße
Matthias

Geändert von alkaluropus (21-06-2005 um 14:00 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 21-06-2005, 14:21
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Kompliziert, wenn du einen Index namens service_id auf gleicher Ebene wie start hättest, wäre es allerdings überhaupt kein Problem
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 21-06-2005, 15:46
alkaluropus
 Newbie
Links : Onlinestatus : alkaluropus ist offline
Registriert seit: Dec 2003
Beiträge: 21
alkaluropus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von mrhappiness
Kompliziert, wenn du einen Index namens service_id auf gleicher Ebene wie start hättest, wäre es allerdings überhaupt kein Problem
Ja - dachte ich mir auch. Jetzt habe ich es so umprogrammiert, das
es schon auf die service_id vorselektiert ist. Jetzt muss ich also
nur noch nach Startzeit sortieren. Du sagst, es wäre kein
Problem. Mir fehlt halt nur die Syntax, wie ich die Position von 'start'
im Array in der $order angebe.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

29.04.2021 mirko_swm | Kategorie: PHP/ Mail
OXID eShop

Mit OXID eshop bieten wir Ihnen eine modulare und skalierbare Internet Shopping Software mit einem hervorragenden Preis-/Leistungsverhältnis.

29.04.2021 eric.jankowfsky@ | Kategorie: PHP/ Shops
PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:06 Uhr.