Array umbauen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array umbauen

    Guten Morgen Board,

    ich habe ein Montagmorgenbrett vor dem Kopf. Aber auf noch das vom Freitag.

    Also aus einer DB wird eine Tabelle zurückgegeben. Das Array sieht so aus:

    Array
    (
    [0] => Array
    (
    [id] => 1
    [pic] => 56.jpg
    [phone_country] => 49
    [email] => email1@testurl.com
    [phone_city] => (0)xxxx
    [phone_no] => xxxx
    [phone_ext] => xxx
    [fax_city] => (0)xxx
    [fax_no] => xxxx
    [fax_ext] => xxx
    [function] => Vertriebsinnendienst Nord & Ost
    [name] => Mustermann, Hans
    )

    [1] => Array
    (
    [id] => 1
    [pic] => 56.jpg
    [phone_country] => 49
    [email] => email2@testurl.com
    [phone_city] => (0)xxx
    [phone_no] => xxxx
    [phone_ext] => xxx
    [fax_city] => (0)231
    [fax_no] => xxxx
    [fax_ext] => xxx
    [function] => Export
    [name] => Mustermann, Hans

    )

    [2] => Array
    (
    [id] => 24
    [pic] => 22.jpg
    [phone_country] => 49
    [email] => Franz.Mustermann@testurl.de
    [phone_city] => (0)yyyy
    [phone_no] => yyyy
    [phone_ext] => 0
    [fax_city] => (0)yyy
    [fax_no] => yyyy
    [fax_ext] => yyy
    [function] => Export Frankreich, Belgien, Niederlande
    [name] => Mustermann, Franz
    )

    etc

    Wenn ich es mit einer Schablone ausgebe, gibt es immer 2 Namen für Hans Mustermann:

    Hans Mustermann
    Tel: ...
    email: email 1

    Hans Mustermann
    Tel: ...
    email: email2

    Franz Mustermann
    ....
    etc

    Ich möchte aber, dass wenn jemans 2 Email Adressen hat(also 2 verschiedene Funktionen) er nur einmal ausgegeben wird. Also keine Name soll doppelt vorkommen. die Arrays müssten dann wohl so aussehen:

    Array
    (
    [0] => Array
    (
    [id] => 1
    [pic] => 56.jpg
    [phone_country] => 49
    [0] => Array
    (
    [function] => Vertriebsinnendienst Nord & Ost
    [email] => email1@testurl.com
    )
    [1]
    ( [function] => Export
    [email] => email2@testurl.com
    )
    )
    [phone_city] => (0)xxxx
    [phone_no] => xxxx
    [phone_ext] => xxx
    [fax_city] => (0)xxx
    [fax_no] => xxxx
    [fax_ext] => xxx
    [name] => Mustermann, Hans
    )

    [1] => Array
    ( etc (weiter mit Franz Mustermann)
    ...

    Ich schaffe es aber nicht das Array mit einer Schleife so umzubauen.
    Zuletzt geändert von antman; 11.10.2004, 09:41.
    Pickel ? Übergewicht ? Depressionen ?
    Brot, Kartoffeln und Milch sind Gift!
    http://www.paleofood.de

  • #2
    Re: Array umbauen

    stichwort: gruppenwechsel
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      schematisch:
      PHP-Code:
      $anzahl count($db_ergebnis);
      $obergrenze $anzahl 1;
      $richtig[] = $db_ergebnis[0];
      $last_id $richtig[0]['id'];
      for (
      $i 0$i $obergrenze$i++) {
        if (
      $last_id != $db_ergebnis[$i]['id']) {
          
      $last_id $db_ergebnis[$i]['id'];
          
      $richtig[] = $db_ergebnis[$i];
        }
        
      $richtig[count($richtig)-1]['mails'][] = array('function' => 1'mail' => 2);

      so in etwa (oder auch nicht, mal probieren)
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Re: Re: Array umbauen

        Original geschrieben von wahsaga
        stichwort: gruppenwechsel
        Was soll das sein ?
        Pickel ? Übergewicht ? Depressionen ?
        Brot, Kartoffeln und Milch sind Gift!
        http://www.paleofood.de

        Kommentar


        • #5
          z.B. danach suchen

          Kommentar


          • #6
            Es gibt zu "Gruppenwechsel" tatsächlich ein paar Themen.
            Habe noch die davon gehört, werde die mir mal durchlesen.

            Noch eine Frage: Das mysql "group by" würde mir nicht weiterhelfen, oder ?
            Pickel ? Übergewicht ? Depressionen ?
            Brot, Kartoffeln und Milch sind Gift!
            http://www.paleofood.de

            Kommentar


            • #7
              Original geschrieben von antman
              Das mysql "group by" würde mir nicht weiterhelfen, oder ?
              nein
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                nein, und distinct auch nicht, die Diskussion haben wir doch schon, warum willst du nicht einsehen?

                Kommentar


                • #9
                  Dass "DISTINCT" nicht klappt ist klar.

                  Steige nicht durch die Lösung von mrhappiness durch. Werde mir mal die gefundenen Themen durchlesen. Ist Gruppenwechsel ein allgemein anerkannter Begriff für dieses Problem ? Oder nur in diesem Forum ?
                  Pickel ? Übergewicht ? Depressionen ?
                  Brot, Kartoffeln und Milch sind Gift!
                  http://www.paleofood.de

                  Kommentar


                  • #10
                    Re: Re: Re: Array umbauen

                    Original geschrieben von antman
                    Was soll das sein ?
                    und du wunderst dich wirklich noch, dass deine einstellung hier auf wenig gegenliebe stösst ...?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Folgender Code gibt leider nur den ersten Datensatz aus. Und das auch nur mit einer Email Adresse:

                      PHP-Code:
                      $sql "
                      SELECT c.id, c.pic, c.phone_country, cf.email,
                                   c.phone_city, c.phone_no, c.phone_ext, c.fax_city, c.fax_no, c.fax_ext, cf.function,
                                  CONCAT(c.name_l, ', ', c.name_f) AS name,
                               LOWER(CONCAT(c.name_f, '_', c.name_l)) AS folder
                      FROM contacts c, lnk_company_contact lcc, contacts_functions cf
                      WHERE (c.id = lcc.id_contact) 
                      AND   (c.public = 'j') 
                      AND   (cf.id = c.id)
                      AND   (lcc.id_company = '350')
                      ORDER BY c.name_l"

                                      
                      $res =& $db->query($sql);
                      $anzahl count($res);
                      while (
                      $row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
                              
                      $data[] = $row;
                                      }
                              
                      $obergrenze $anzahl 1;
                              
                      $richtig[] = $data[0];
                              
                      $last_id $richtig[0]['id'];
                              for (
                      $i 0$i $obergrenze$i++) {
                                  if (
                      $last_id != $data[$i]['id']) {
                                      
                      $last_id $data[$i]['id'];
                                      
                      $richtig[] = $data[$i];
                                  }
                                  
                      $richtig[count($richtig)-1]['mails'][] = array('function' => 1'mail' => 2);
                              }

                      print 
                      "<pre>";
                      print_r($richtig);
                      print 
                      "</pre>"
                      Zuletzt geändert von antman; 11.10.2004, 11:47.
                      Pickel ? Übergewicht ? Depressionen ?
                      Brot, Kartoffeln und Milch sind Gift!
                      http://www.paleofood.de

                      Kommentar


                      • #12
                        Mist, warum geht dieses nicht. Das würde es lösen:

                        PHP-Code:
                            while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
                                
                        $data[$row['name']] = $row;
                            
                        $data[$row['email'][]]= $row['email'];

                        Pickel ? Übergewicht ? Depressionen ?
                        Brot, Kartoffeln und Milch sind Gift!
                        http://www.paleofood.de

                        Kommentar


                        • #13
                          du willst wahrscheinlich:
                          PHP-Code:
                          $data[$row['email']][]= $row['email']; 
                          haben?

                          Kommentar


                          • #14
                            Original geschrieben von asp2php
                            du willst wahrscheinlich:
                            PHP-Code:
                            $data[$row['email']][]= $row['email']; 
                            haben?
                            Jo, du hast mal wieder recht.

                            Allerdings ergibt:

                            PHP-Code:
                            while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
                                
                            $data[$row['name']] = $row;
                                
                            $data[$row['email']][]= $row['email'];


                            Array
                            (
                            [nachame1, vorame1] => Array
                            (
                            [id] => 1
                            [pic] => 56.jpg
                            [phone_country] => 49
                            [email] => email1@testurl.de
                            [phone_city] => ...
                            [phone_no] => ...
                            [phone_ext] => ...
                            [fax_city] => ...
                            [fax_no] => ...
                            [fax_ext] => ...
                            [function] => Export
                            [name] =>name1, vorname1
                            [folder] => ...
                            )

                            [email1@testurl.de] => Array
                            (
                            [0] => email1@testurl.de
                            )

                            [email2@testurl.de => Array
                            (
                            [0] => email2@testurl.de
                            )

                            [nachname2, vorname2] => Array
                            (
                            [id] => ...
                            [pic] => ...
                            [phone_country] => ...
                            [email] => ...
                            [phone_city] => ...
                            [phone_no] => ...

                            etc

                            Also auch wieder etwas, das man nicht braucht.
                            Zuletzt geändert von antman; 11.10.2004, 12:20.
                            Pickel ? Übergewicht ? Depressionen ?
                            Brot, Kartoffeln und Milch sind Gift!
                            http://www.paleofood.de

                            Kommentar

                            Lädt...
                            X