PHP suchen und sortieren
Mark
- php
Hallo,
habe da ein problem, un zwar möchte ich mein suchergebnis sortiert ausgeben.
hier mein script:
$f=fopen("../daten/datei.csv","r"); $suche="$monat/$jahr"; $groesse=filesize("../daten/datei.csv"); while(!feof($f)) { $datensatz=fgetcsv($f,$groesse,";"); if($datensatz[3]==$suche) {
echo "$datensatz[0]<br>$datensatz[8]<br>$datensatz[6]<br>$datensatz[4]<br>$datensatz[9]<br>$datensatz[7]<br>$datensatz[10]<br>**********<br><br>\n";
} } fclose($f);
wie mach ich das, dass jetzt nach datensatz[0] sortiert ausgegeben wird?
hoffe es kann mir jemand helfen
cu, mark
Hi,
wie mach ich das, dass jetzt nach datensatz[0] sortiert ausgegeben wird?
indem Du Deine Datensätze in ein mehrdimensionales array schreibst, dieses dann sortierst [1] und dann das Ganze erst mit foreach [2] ausgibst.
[1] http://www.php.net/manual/de/function.sort.php
[2] http://www.php.net/manual/de/control-structures.foreach.php
ciao
romy
Hi,
wie mach ich das, dass jetzt nach datensatz[0] sortiert ausgegeben wird?
indem Du Deine Datensätze in ein mehrdimensionales array ....
und wie werden die Dated in ein "Mehrdimensionalem Array" geschrieben?
...ich hab da irgendwie den Faden verloren,wo/wie sollte es in meinem vorhandenem Script eingebunden werden?
THX, Mark
Hi Mark,
$f=fopen("../daten/datei.csv","r");
$suche="$monat/$jahr";
$groesse=filesize("../daten/datei.csv");
$testarray = array();
while(!feof($f))
{
$datensatz=fgetcsv($f,$groesse,";");
if($datensatz[3]==$suche)
{
$testarray( $datensatz[0] => "$datensatz[0]<br>$datensatz[8]<br>$datensatz[6]<br>
$datensatz[4]<br>$datensatz[9]<br>$datensatz[7]<br>
$datensatz[10]<br>**********<br><br>\n")
}
}
fclose($f);
$sortarray = sort($testarray); //ich nehme mal an nach dem Alphabet!?
foreach($sortarray as $key => $value) {
echo $value;
}
so ungefähr, ich weiss noch nicht ganz ob ich Deinen Ansatz komplett verstanden habe...(wenn es nicht funktionieren sollte, gib mir mal en Beispiel deiner Ausgabe so wie sie jetzt ist und dann ein Besipiel wie sie sein sollte)
ciao
romy
Erst einmal vielen Dank Romy!
Ich habe leider nur ein wenig Grundwissen...THX für die Geduld
hier mal ein Auszug aus meiner Liste/Tabelle (csv)
15.02.2003;15.02.2003;;02/03;16:00;18:00;überschrift01;info01;ort03;location01;http://web01;new
13.02.2003;15.02.2003;;02/03;16:00;18:00;überschrift01;info01;ort01;location01;http://web02;new
14.02.2003;15.02.2003;;02/03;16:00;18:00;überschrift01;info01;ort02;location01;http://web03;new
nach datensatz[3] soll gesucht werden, klappt ja auch so weit mit dem bisherigem Script, angezeigt wird es auch, allerdings schmeisst mir mein Script die Daten so aus wie´s gelesen wird.
Mein Problem ist es, die Daten sortiert nach Datum (datensatz[0]) "und" nach Möglichkeit nach Ort Datensatz[8] auszugeben.
cu, Mark
HI,
15.02.2003;15.02.2003;;02/03;16:00;18:00;überschrift01;info01;ort03;location01;http://web01;new
13.02.2003;15.02.2003;;02/03;16:00;18:00;überschrift01;info01;ort01;location01;http://web02;new
14.02.2003;15.02.2003;;02/03;16:00;18:00;überschrift01;info01;ort02;location01;http://web03;new
Nenn die Felder so wie Du willst
$testarray = array("Datum1" => array(),
"Datum2" => array(),
"wasweissich" => array(),
"Jahr" => array(),
"Uhrzeit1" => array(),
"Uhrzeit2" => array(),
"ueberschrift01" => array(),
"info01" => array(),
"ort03" => array(),
"location01" => array(),
"url" => array(),
"new" => array(),);
forschleife {
$testarray["Datum1"][$i] = $datensatz[0];
$testarray["Datum2"][$i] = $datensatz[1];
... // usw.
}
//sortierung
$neu = array_multisort($testarray["Datum1"],SORT_NUMERIC)
irgendsowas, ehrlich gesagt, weiss ich hier nicht weiter
ich weiss auch nicht ob das obige nicht zu umständlich ist
Was Du bräuchtest wäre ein array wie bei Datanbankabfragen...leider komme ich im Moment nicht drauf...
Mir fällt auch zur Sortierung nichts mehr ein, irgendwie will es nicht so wie ich dachte, sorry
ciao
romy