SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.08.2009, 20:38:21
hoagie007 hoagie007 ist offline
Anfänger
 
Registriert seit: May 2007
Alter: 47
Beiträge: 12
hoagie007 eine Nachricht über Yahoo! schicken
Mehrdimensionales Array sortieren - ich steh' auf dem Schlauch :-(

Hallo Experten,

ich habe mir in den letzten Stunden diverse Foren zum o.g. Thema durchgelsen, meine diversen PHP-Bücher gewälzt und mich auf php.net durchgewühlt, aber irgendwie fehlt mir der Durchblick.
Das Problem ist wahrscheinlich ganz banal und ich sehe mal wieder den Wald vor lauter Bäumen nicht.

Folgender Code holt Daten aus der MySQL-DB:

PHP-Code:
$res_prod mysql_query('SELECT anzahl,format,art,papier FROM foto');
    
$produkte=array();
for (
$i=0$i mysql_num_rows($res_prod); $i++) 
    {
     
$prow=mysql_fetch_array($res_prod);
    
$produkte[$prow['format']][$prow['art']][$prow['papier']]+=$prow['anzahl'];

Nun möchte ich das Array $produkte nach 'anzahl' absteigend sortieren.
Ich habe es mit ksort, asort, usort und array_multisort probiert, aber das Ergebnis war nie so wirklich wie ich es haben möchte.

Ergebis zum jetzigen Zeitpunkt:

9 x 13 - matt - Standard - 39
10 x 15 - glänzend - Standard - 2
10 x 15 - glänzend - Standard - 17
13 x 18 - matt - Premium - 28
13 x 18 - matt - Premium - 11
...

Das Array gebe ich so in HTML aus:
PHP-Code:
foreach ($produkte AS $pformat=>$value)
    {
    foreach (
$value AS $part=>$value2)
        {
        foreach (
$value2 AS $ppapier=>$value3)
        {
        if ((
$sformat[$pformat]<>'') AND ($sart[$part]<>'') AND ($spapier[$ppapier]<>''))
            {
            echo 
'<tr><td>'.$sformat[$pformat].'</td><td>'.$sart[$part].'</td><td>'.$spapier[$ppapier].'</td><td>'.$value3.'</td></tr>';
            }
        }
    }

Über die Arrays $sformat, $sart und $spapier hole ich die Bezeichnungen der jeweiligen Werte. Aber wie sortiere ich nach der Anzahl ?!?!

Kann mir bitte jemand helfen, ich bin am verzweifeln.

DANKE!!
Mit Zitat antworten
  #2  
Alt 21.08.2009, 22:20:13
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Mehrdimensionales Array sortieren - ich steh' auf dem Schlauch :-(

...?

$res_prod = mysql_query('SELECT anzahl,format,art,papier FROM foto ORDER BY anzahl DESC');

und sowas fragt ein experte?
Mit Zitat antworten
  #3  
Alt 22.08.2009, 01:37:24
hoagie007 hoagie007 ist offline
Anfänger
 
Registriert seit: May 2007
Alter: 47
Beiträge: 12
hoagie007 eine Nachricht über Yahoo! schicken
AW: Mehrdimensionales Array sortieren - ich steh' auf dem Schlauch :-(

Hallo feuervogel,

nein, sowas fragt ein Fortgeschrittener, der sich einen Rat VON einem Experten erhofft hat.

Um das Problem noch ein wenig zu erläutern:
Es macht keinen Unterschied, ob ich an die Query ein 'ORDER BY anzahl DESC' anhänge - die Ausgabe ändert sich insgesamt (was die Reihenfolge der Einträge angeht), aber absteigend sortiert nach 'anzahl' ist das noch lange nicht.

Hättest Du nicht nur die erste Code-Zeile in Augenschein genommen sondern auch einen Blick darauf geworfen, wie die Daten in das Array wandern, könntest Du es nachvollziehen.

PHP-Code:
$produkte[$prow['format']][$prow['art']][$prow['papier']] += $prow['anzahl']; 
Die Werte aus der Query werden im Array addiert, also bringt mir ein ORDER BY nichts.

Ich habs inzwischen ein wenig umgeschrieben - jetzt tut es wie es soll.
Trotzdem Danke für die Antwort.

Geändert von hoagie007 (22.08.2009 um 01:48:33 Uhr)
Mit Zitat antworten
  #4  
Alt 22.08.2009, 09:03:24
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Mehrdimensionales Array sortieren - ich steh' auf dem Schlauch :-(

mehrdimensionale arrays lassen sich mit array_multisort( ) behandeln.

cx
Mit Zitat antworten
Antwort

Stichworte
array, mehrdimensional, sortieren


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrdimensionales Array sortieren sinfo PHP Grundlagen 15 28.11.2008 21:10:35
Mehrdimensionales Array sortieren MrLongbaugh PHP Grundlagen 10 06.03.2008 13:02:47
Mehrdimensionales Array sortieren Heppi PHP Grundlagen 21 22.02.2005 13:01:32
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 14:36:58
mehrdimensionales Array sortieren blaue-sau PHP Grundlagen 2 18.09.2003 22:02:15


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:22:26 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt