PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   wie gruppiere ich einen Array? (http://www.selfphp.de/forum/showthread.php?t=19669)

burnhard_1979 25.06.2008 12:06:25

wie gruppiere ich einen Array?
 
Hallo liebe Leute,
ich habe eine Datenbankabfrage, die mir vier Werte ausliest und in ein Array schreibt, und diese dann in einer Tabelle ausgibt. Es gibt aber sehr sehr viele doppelte und dreifache Einträge (welche ich beim Upload in die DB nicht verhindern kann!) die ich nun filtern möchte.

Hier ist so ein Beispiel:

01.04.2008 10:51:25 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:16 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:22 961709 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:23 961709 28158 dies ist ein lange
01.04.2008 10:52:25 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:29 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:35 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:38 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:42 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:53:02 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:04 911831 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:06 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:07 911801 28156 das ist ein ander
01.04.2008 10:53:09 911831 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:19 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:22 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:25 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:30 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:47 961833 28159 und hier kommt der dritte lange text mit noch mehr buchstaben
01.04.2008 11:04:10 957857 28162 und noch ein langer text mit noch mehr buchstaben
01.04.2008 11:05:44 931825 28154 und das ist der letzte lange text mit vielen vielen buchstaben
01.04.2008 11:05:46 955825 28154 und das ist der letzte lange text mit vielen vielen buchstaben
01.04.2008 11:05:49 955825 28154 und das ist der letzte lange text mit vielen vielen buchstaben
01.04.2008 11:05:50 931825 28154 und das ist der letzte lang
01.04.2008 11:05:53 931825 28154 und das ist der letzte lange text mit vielen vielen buch
01.04.2008 11:05:57 911801 28154 und das ist der letzte lange text mit vielen vielen buchstaben
01.04.2008 11:06:00 911801 28154 und das ist der letzte lange text mit vielen vielen buchstaben


Spalte1 beinhaltet Datum und Uhrzeit, die zweite eine Zahl, die dritte auch und die vierte enthält den Text.

Jetzte möchte ich folgendermaßen differenzieren: Es soll nur immer ein Eintrag der Spalte2 angezeigt werden, jedoch bei einem abweichenden Wert in Spalte3 ein neuer Eintrag angezeigt werden - und weil es so schön ist, natürlich nur immer den längsten Eintrag der Spalte4 (mit dem Text)

Die Lösung sollte dann so aussehen:

01.04.2008 10:52:22 961709 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:52:42 961809 28158 dies ist ein langer text mit der nummer 1
01.04.2008 10:53:09 911831 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:30 911801 28156 das ist ein anderer langer text mit vielen buchstaben
01.04.2008 10:53:47 961833 28159 und hier kommt der dritte lange text mit noch mehr buchstaben
01.04.2008 11:04:10 957857 28162 und noch ein langer text mit noch mehr buchstaben
01.04.2008 11:05:44 931825 28154 und das ist der letzte lange text mit vielen vielen buchstaben
01.04.2008 11:05:49 955825 28154 und das ist der letzte lange text mit vielen vielen buchstaben
01.04.2008 11:05:57 911801 28154 und das ist der letzte lange text mit vielen vielen buchstaben

Ich habe schon versucht mit array_unique eine Lösung zu finden, bin aber etwas ratlos wie ich das bewerkstelligen könnte.

Wahrscheinlich ist das Problem etwas schwierig zu verstehen - also bitte, falls ihr Fragen habt, einfach schicken.

Ich wäre über eine Antwort sehr sehr dankbar, denn ich zerbreche mir hier schon seit ein paar Tagen den Kopf ohne eine Lösung zu finden.

Vielen Dank im Voraus,
lg, burnhard_1979

DokuLeseHemmung 25.06.2008 15:28:06

AW: wie gruppiere ich einen Array?
 
Schon im SQL !!
Such mal nach GROUP BY ..

burnhard_1979 25.06.2008 16:13:46

AW: wie gruppiere ich einen Array?
 
Hallo Dokulesehemmung,

danke für den Tipp...den Versuch mit mySQL hab ich schon lange aufgegeben - ich habe tagelang mit group by und subselects versucht, aber nie was richtiges rausgebracht. Hatte ja auch schon hier bzgl. dem gepostet...

Gibts denn keine Möglichkeit im PHP?

Danke, lg burnhard_1979


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:22:48 Uhr.

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