Array umwandeln

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

  • Array umwandeln

    Hallo,
    ich bin neu beim Thema PHP und Versuche ein Array umzuwandeln.
    Ich habe es mit foreach Schleifen probiert, ich bekomme es einfach nicht hin.
    Eventuell kann mir jemand helfen, danke für die Hilfe !


    Ich habe ein Array: daten["teile"] was bei der foreach Ausgabe so aussieht:

    PHP-Code:
    Array
    (
        [
    Auto] => Array
            (
                [
    0] => AAAAAAAA      
                
    [1] => BBBBBBBB            
                
    [2] => CCCCCCCC                    
            
    )
        [
    Motor] => Array
            (
                [
    0] => DDDDDDDD
                
    [1] => EEEEEEER
                
    [2] => FFFFFFFF
            
    )

        [
    Reifen] => Array
            (
                [
    0] => GGGGGGGG
                
    [1] => HHHHHHHH
                
    [2] => IIIIIIII
            
    )

    Und so sollte es eigentlich aussehen:

    PHP-Code:

    Array

                [
    0] => Array
                    (
                        [
    Auto] => AAAAAAAA
                        
    [Motor] => DDDDDDDD
                        
    [Reifen] => GGGGGGGG
                    
    )

                [
    1] => Array
                    (
                        [
    Auto] => BBBBBBBB
                        
    [Motor] => EEEEEEEE
                        
    [Reifen] => HHHHHHHH
                    
    )

                [
    2] => Array
                    (
                        [
    Auto] => CCCCCCCC
                        
    [Motor] => FFFFFFFF
                        
    [Reifen] => IIIIIIII
                    
    )
                    


  • #2
    Hallöchen,
    PHP-Code:
    foreach ($DeinArray as $key=>$value) {
    $NeuArray[] = array($key => $value);
    }

    print 
    '<pre>';
    print_r ($NeuArray);
    print 
    '</pre>'
    Das war Blödsinn. Sorry
    Zuletzt geändert von Wasser_Wanderer; 21.04.2014, 17:56.

    Kommentar


    • #3
      Danke für Deine Rückmeldung.

      Leider kommt aber nicht die gewünschte Ausgabe, es bleibt im Grunde so, siehe unten.
      Es ist das gleiche, als wenn ich einen Zähler im Array Loop daten[$i]["teile"] noch dazu füge
      Das Array muss irgendwie umgestellt werden, so das die ganze Sortierung anderes ist, siehe zweites Beispiel oben.

      Danke


      PHP-Code:
      Array
      (
          [
      0] => Array
              (
                  [
      Auto] => Array
                      (
                             [
      0] => AAAAAAAA      
                             
      [1] => BBBBBBBB            
                             
      [2] => CCCCCCCC   

                      
      )

              )

          [
      1] => Array
              (
                  [
      Auto] => Array
                      (
                          [
      0] => DDDDDDDD
                          
      [1] => EEEEEEER
                          
      [2] => FFFFFFFF
                      
      )

              )

           [
      2] => Array
              (
                  [
      Reifen] => Array
                      (
                          [
      0] => GGGGGGGG
                          
      [1] => HHHHHHHH
                          
      [2] => IIIIIIII
                      
      )

              )

      Zuletzt geändert von Sebastian22; 21.04.2014, 18:11.

      Kommentar


      • #4
        Ich habe ein Array: daten["teile"]
        Ämmm....
        Wo kommen die Daten denn her?
        evtl. kann man das Problem tiefer anfassen.
        Wir werden alle sterben

        Kommentar


        • #5
          Wie ich schon im Vor-Post schrieb: Das mein Blödsinn

          So sollte es klappen (Wenn es so aussehen soll wie in deinem 2.ten Post):
          PHP-Code:
          foreach ($DeinArray as $key=>$value) {
          $NeuArray[][$key] =  array($value[0],$value[1],$value[2]);

          Kommentar


          • #6
            Danke für Deine Mühe, aber es ist leider das selbe Ergebnis.
            Ich möchte die Ausgabe so haben :
            PHP-Code:


            Array

                        [
            0] => Array
                            (
                                [
            Auto] => AAAAAAAA
                                
            [Motor] => DDDDDDDD
                                
            [Reifen] => GGGGGGGG
                            
            )

                        [
            1] => Array
                            (
                                [
            Auto] => BBBBBBBB
                                
            [Motor] => EEEEEEEE
                                
            [Reifen] => HHHHHHHH
                            

            nicht so :

            PHP-Code:
            Array
            (
                [
            Auto] => Array
                    (
                        [
            0] => AAAAAAAA      
                        
            [1] => BBBBBBBB            
                        
            [2] => CCCCCCCC                    
                    
            )
                [
            Motor] => Array
                    (
                        [
            0] => DDDDDDDD
                        
            [1] => EEEEEEER
                        
            [2] => FFFFFFFF
                    

            Vielleicht bekommt man das mit der SPL Klasse hin ?

            Kommentar


            • #7
              Vielleicht so?:
              PHP-Code:
              <?php
              $teile 
              = array("Auto" => array(=> AAAAAAAA=> BBBBBBBB=> CCCCCCCC),
                          
              "Motor" => array(=> DDDDDDDD=> EEEEEEER=> FFFFFFFF),
                             
              "Reifen" => array(=> GGGGGGGG=> HHHHHHHH=> IIIIIIII));  
               
              /*
              * Neues Array anlegen
              */
              $teile_neu = array();
              /*
              * Schlüssel für die Subarrays
              */
              $index = array("Auto""Motor""Reifen");
               foreach(
              $teile as $key => $array){
               
              /*
               * Subarrays die Schlüssel zuweisen und in neuem Array ablegen
               */
               
              $teile_neu[] = array_combine($index$array);
              }
              echo 
              "<pre>";
              echo 
              "<h4>Vorher</h4>"print_r($teile);
              echo 
              "<h4>Nachher</h4>"print_r($teile_neu);
              ?>
              Gruß
              Günni

              Kommentar


              • #8
                Zitat von Guenni61 Beitrag anzeigen
                Vielleicht so?:
                PHP-Code:
                <?php

                Schlüssel für die Subarrays
                */
                $index = array("Auto""Motor""Reifen");
                Guter Ansatz Guenni

                Statt $index per "Hand" zu besetzen, würde ich dann (falls die Schlüssel nicht bekannt sind), es so machen:
                PHP-Code:
                $index array_keys $teile); 
                Gruss WW

                Kommentar

                Lädt...
                X