Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mehrdimensionales Array für Tabellensortierung in CSV?

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

  • [Erledigt] Mehrdimensionales Array für Tabellensortierung in CSV?

    Hey,

    hab mich mal bisschen mit mehrdimensionalen Arrays ( offenbar die Lösung meines CSV Problems ) beschäftigt.

    ich habe die Arrays:

    $ar_avg , $ar_merker, $abteilung

    print_r ($ar_avg);
    =
    Array ( [0] => 2.75 [1] => 4.5 [2] => 3.5 [3] => 2.5 [4] => 4.5 [5] => 1.5 [6] => 4.5 [7] => 0.5 [8] => 5 [9] => 3.5 [10] => 2 [11] => 2.5 [12] => 4.25 [13] => 4.5 [14] => 4.25 [15] => 0.5 [16] => 6 [17] => 4.5 [18] => 6.75 [19] => 4.5 [20] => 4.5 [21] => 4.5 [22] => 3.5 [23] => 2.5 )

    print_r ($ar_merker);
    =
    Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 4 [4] => 4 [5] => 4 [6] => 4 [7] => 4 [8] => 3 [9] => 4 [10] => 4 [11] => 4 [12] => 4 [13] => 4 [14] => 4 [15] => 4 [16] => 4 [17] => 4 [18] => 4 [19] => 4 [20] => 4 [21] => 4 [22] => 4 [23] => 4 )

    print_r ($abteilung);
    Array ( [0] => ASSR_K [1] => AWZ_IK [2] => ConSRK [3] => EinfKK [4] => EinSRK [5] => Log13K [6] => MarSNK [7] => PENATK [8] => Per13K [9] => VeEESK [10] => XME-IK [11] => §7157K )



    ich hätte jetzt gerne ein Array ber wiefolgt aussieht:


    Array ([0] => ASSR_K [0] => 2,75 [0] => 4 [0])
    also "ASSR_K";"2,75";"4"; als Ausgabe

    ein mix aus drei Arrays.

    Hab ich das Prinzip richtig verstanden?


  • #2
    Hi.

    Zitat von Andre3000 Beitrag anzeigen
    Hab ich das Prinzip richtig verstanden?
    Vermutlich ist es noch zu früh für mich, aber welches Prinzip genau hast Du jetzt verstanden? Wie man Arrays befüllt, auf die Werte zugreift, oder mehrdimensionale Arrays verwaltet?!? Oder wie Du einen Mix aus den 3 bekommst*grübel*?!

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Zitat von wolf29 Beitrag anzeigen
      Hi.



      Vermutlich ist es noch zu früh für mich, aber welches Prinzip genau hast Du jetzt verstanden? Wie man Arrays befüllt, auf die Werte zugreift, oder mehrdimensionale Arrays verwaltet?!? Oder wie Du einen Mix aus den 3 bekommst*grübel*?!

      Wolf29
      arrays befüllen kann ich ^^

      auf die werte zugreifen per mehrdimensionaler verwaltung ? << noch nie gemacht

      also da ist meine frage

      ich würde gerne wie oben beschrieben einen array erzeugen der jeweils die (gleichrangigen?) werte aus den drei arrays beinhaltet also position 0,0,0 gehören zusammen 1,1,1 usw.

      da ich diese nachher per csv ( zeilenweise ) einlesen möchte damit spalten entstehen

      1.Spalte
      Abteilung
      2.Spalte
      Durchschnitt
      3.Spalte
      Personenanzahl

      usw

      Kommentar


      • #4
        Zitat von Andre3000 Beitrag anzeigen
        mehrdimensionaler verwaltung ? << noch nie gemacht
        Diesmal auch nicht. Du hast drei unabhängige Arrays aus denen du zu jeweils immer dem gleichen Schlüssel die Werte rausziehst und in ein neues Array packst - das kannst du so machen, hat aber nichts mit Mehrdimensionalität zu tun.

        Aber was genau bringt dir die Erkenntnis? Kannst du doch einfach ausprobieren:

        [MAN]foreach[/MAN]
        [MAN]array[/MAN]
        You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

        Kommentar


        • #5
          Kannst doch einfach mit foreach() so was abarbeiten. Aber warum willst Du das machen?!?

          Wolf29
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            Du hast da allerdings nur ein eindimensionales Array

            versuch mal etwas in der Art:

            PHP-Code:
            $array = array(array("Apfel""Birne"), array("Hund""Katze");

            echo 
            $array[0][0]; // "Apfel" wird ausgegeben
            echo $array[1][0]; // "Hund" wird ausgegeben 
            Das ganze musst Du natürlich noch auf deine Bedürfnisse anpassen...

            oder halt mit foreach wie meine vorposter meinten....

            Kommentar


            • #7
              Zitat von wolf29 Beitrag anzeigen
              Kannst doch einfach mit foreach() so was abarbeiten. Aber warum willst Du das machen?!?

              Wolf29
              weil ich für csv ne zeilenausgabe brauche die ich mit arrays schön bekomme

              bekannter hat mich gestern nur auf diese mehrdimensionalen arrays gebracht aber wenn ich die garnicht brauche auch gut ^^

              edit:
              kann mir vll mal einer beispiel geben mit foreach? ich kriegs nich hin ^^

              Kommentar


              • #8
                Zeig doch erstmal was du selbst probiert hast.
                You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

                Kommentar


                • #9
                  PHP-Code:
                  $newArray = array();
                  foreach(
                  $ar_avg as $key => $wert){
                  $newArray []= $ar_avg[$key].','.$ar_merker[$key].','.$abteilung[$key];
                  }
                  print_r($newArray); 
                  schau mal was dabei rauskommt
                  apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/witalimik

                  Kommentar


                  • #10
                    Zitat von BlackScorp Beitrag anzeigen
                    PHP-Code:
                    $newArray = array();
                    foreach(
                    $ar_avg as $key => $wert){
                    $newArray []= $ar_avg[$key].','.$ar_merker[$key].','.$abteilung[$key];
                    }
                    print_r($newArray); 
                    schau mal was dabei rauskommt
                    genaauuu das hab ich gesucht

                    Kommentar


                    • #11
                      PHP-Code:

                      $newArray 
                      = array();
                      $counter 0;
                      foreach(
                      $ar_avg as $key => $wert){

                      $newArray []= $ar_avg[$key].','.$ar_merker[$key].','.$abteilung[$counter];
                      if(
                      $counter 12){
                      $counter 0;
                      }else{
                      $counter++;
                      }
                      }
                      print_r($newArray); 
                      nicht schön, aber selten
                      apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/witalimik

                      Kommentar


                      • #12
                        Zitat von BlackScorp Beitrag anzeigen
                        PHP-Code:

                        $newArray 
                        = array();
                        $counter 0;
                        foreach(
                        $ar_avg as $key => $wert){

                        $newArray []= $ar_avg[$key].','.$ar_merker[$key].','.$abteilung[$counter];
                        if(
                        $counter 12){
                        $counter 0;
                        }else{
                        $counter++;
                        }
                        }
                        print_r($newArray); 
                        nicht schön, aber selten
                        perfekt!

                        das ich auf sowas nich komme
                        sobald ich es sehe erscheint alles so logisch


                        Finales Problem:

                        Das Array so aufteilen, das ich per:
                        PHP-Code:
                        $list = array ($csvArray);

                        $fp fopen('file.csv''w');

                        foreach (
                        $list as $line
                        {
                            
                        fputcsv($fpsplit(";"$line));
                        }

                        fclose($fp); 
                        eine schöne CSV Tabelle bekomme.

                        Das heißt das ich jeweils die Keys 0-11 für "Jahr1" und 12-24 für "Jahr2" usw.....abfangen muss und damit dann jeweils arrays erzeugen muss oder?

                        In meinem PHP CSVExport wird pro Eintrag in $list = array ($csvexport) eine Zeile erzeugt

                        also bei $list = array ($csvexport, $abteilung )

                        hätte ich beispielsweise 2 Zeilen.

                        Da ich aber je nach Anzahl der Abteilungen dementsprechend viele Zeilen ( hier jetzt zufällig 12 ) brauche muss ich die Einträge im Array irgendwie variabel gestalten.

                        Ist das möglich?

                        Kommentar


                        • #13
                          Hilfe?

                          Kommentar


                          • #14
                            Zitat von Andre3000 Beitrag anzeigen
                            ...Ist das möglich?
                            Ja. Wie sieht dein Ansatz dafür aus? Die Grundidee hast du ja schon dafür!

                            Wolf29
                            while (!asleep()) sheep++;

                            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                            Kommentar


                            • #15
                              1.Idee wäre:
                              das $csvArray[0] jeweils als 1 Array
                              $csvArray[1] jeweils als 1 array
                              usw.....

                              und diese dann vll mit ner Schleife und einer variablen in die csvdatei einlesen?

                              2.Idee wäre jeweils ein direkter aufruf aus dem Array

                              also $csvArray[1] soll dann direkt ausgelesen werden ohne das ich extra neue arrays erstelle ^^


                              hoffe ihr versteht was ich meine


                              ich scheitere hier nur an der schleife, da ich sie hier :
                              PHP-Code:
                              $list = array ($csvArray);

                              $fp fopen('file.csv''w');

                              foreach (
                              $list as $line
                              {
                                  
                              fputcsv($fpsplit(";"$line));
                              }

                              fclose($fp); 
                              nicht richtig eingebunden bekomme

                              Kommentar

                              Lädt...
                              X