Array umwandeln

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Wasser_Wanderer; 21-04-2014, 17:56.

    Comment


    • #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
                      
      )

              )

      Last edited by Sebastian22; 21-04-2014, 18:11.

      Comment


      • #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

        Comment


        • #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]);

          Comment


          • #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 ?

            Comment


            • #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

              Comment


              • #8
                Originally posted by Guenni61 View Post
                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

                Comment

                Working...
                X