michel gelin: variable auserhalb einer schleife

Hallo zusammen,

wie kann ich den wert einer variable auserhalb einer schleife weiterverwenden?

Ich möchte mittels einer schleife das vorkommen eines feldes in einem flatfile zählen, damit ich danach genau weiss wieviele datensätze es gibt welche dem kriterium (X,Y,Z) entsprechen.
Die muss ich wissen, damit ich den schliessenden table-tag schreiben kann. So dachte ich mir ich zähle zuerst in einer schleife und verarbeite dann wiederum in einer schleife (mit interner schleife für <table> und </table>.

flatefile: (... = weitere daten)
X|||...
X|Y||...
||Z|...
X|Y|Z|...
[...]

daraus soll es dann listen geben für X,Y,Z (wobei jedes eine eigene table ist):
X
-datensätze

Y
-datensätze

Z
-datensätze

ich hoffe Ihr versteht was ich machen möchte.

Die ganze problematik habe ich weil ich nicht weiss wann der letzte Datensatz geschrieben wird, deshalb die idee mit dem vorgängigen zählen.

gruss
michel gelin

  1. Huhu michel

    ich bin mir nicht sicher ob ich wirklich verstanden habe was Du machen möchtest, aber vielleciht hilf es dir wenn Du Deine Datensäze in ein assoziatives Array ablegst.

    Z.B. so:

    Angenommen Dein Flatfile ist Zeilenweise in einem Array $flat abgelegt...

    $haystack = array();
    foreach ( $flat as $f ){
     $kriterium = macheirgendetwasmit($f);   # das muss hier noch ausgearbeitet werden
     $haystack[$kriterium][] = $f;
    }

    /* jetzt hast Du ein Array von Arrays */

    foreach ($haystack as $k => $v){

    printf('Zum Kriterium %s gibt es %d Einträge <br>',$k,count($v));

    }

    so far ....

    Viele Grüße

    lulu

    1. Hi lulu (wäre auch gern @maledivas ;-),

      ...sieht ganz nach einer erweiterung meines php-horizontes aus,
      aber das mache ich ja gerne!

      ich bin mir nicht sicher ob ich wirklich verstanden habe was Du machen möchtest, aber vielleciht hilf es dir wenn Du Deine Datensäze in ein assoziatives Array ablegst.

      ja, ich denke mal dass Du mich schon verstanden hast. ich werde mir Deine lösung mal anschauen und dann sehe ich ja ob ich Dich wieder verstehe!

      Danke!

      michel