Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrdimensionales Array umstrukturieren

Einklappen

Neue Werbung 2019

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

  • Mehrdimensionales Array umstrukturieren

    Hallo zusammen,

    gegeben ist ein Array, das wie folgt strukturiert ist:

    PHP-Code:
    array(2) {     ["label"]=>   array(3) {     [0]=>     string(4"label1"     [1]=>     string(4"label2"     [2]=>     string(0""   }   ["value"]=>   array(3) {     [0]=>     string(5"wert1"     [1]=>     string(5"wert2"     [2]=>     string(0""   
    Nun möchte ich das Array so umstruktuieren, dass es wie folgt aufgebaut ist:

    PHP-Code:
    array(3) {
      [
    0]=>
      array(
    2) {
        [
    "label"]=>
        
    string(4"label1"
        
    ["value"]=>
        
    string(5"wert1"
      
    }
      [
    1]=>
      array(
    2) {
        [
    "label"]=>
        
    string(0"label2"
        
    ["value"]=>
        
    string(0"wert2"
      
    }
      [
    2]=>
      array(
    2) {
        [
    "label"]=>
        
    string(0""
        
    ["value"]=>
        
    string(0""
      
    }



    label und value sollen also jeweils in einem Array gruppiert werden.

    Wie lässt sich dies am einfachsten erreichen?

  • #2
    Woher kommt das Array, kann man es ev. gleich anders erstellen?

    Versuch es mal mit foreach()

    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Am einfachsten indem du in einer Schleife die Arraylänge durchläufst und dir ein neues Array anlegst:

      Mal angedeutet:
      PHP-Code:
      $result = [];
      for(
      $i 0$i count($array['label']); $i++) {
        
      $result[$i]['label'] = $array['label'][$i];
        
      $result[$i]['value'] = $array['value'][$i];

      Eventuell kommt hier aber auch noch jemand mit einer schickeren Lösung, die die array_* Funktionen benutzt.

      Kommentar


      • #4
        Zitat von ChromOxid Beitrag anzeigen
        Am einfachsten indem du in einer Schleife die Arraylänge durchläufst und dir ein neues Array anlegst:

        Mal angedeutet:
        PHP-Code:
        $result = [];
        for(
        $i 0$i count($array['label']); $i++) {
        $result[$i]['label'] = $array['label'][$i];
        $result[$i]['value'] = $array['value'][$i];

        Eventuell kommt hier aber auch noch jemand mit einer schickeren Lösung, die die array_* Funktionen benutzt.
        Vielen Dank,
        das hat geklappt!
        @hausl:
        Es kommt aus einem Formular und ich brauche es an dieser Stelle in der Form.

        Kommentar


        • #5
          Es kommt aus einem Formular
          Hast du Einfluss auf das Form? Dann kannst du es auch gleich "vorne" so machen, wie du es "hinten" dann brauchst.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Zitat von hausl Beitrag anzeigen

            Hast du Einfluss auf das Form? Dann kannst du es auch gleich "vorne" so machen, wie du es "hinten" dann brauchst.
            Ja das stimmt. Allerdings wird das Formular dynamisch in einer Schleife erstellt, wobei auch die Anzahl der Formularfelder variabel ist. Da ist es glaube ich etwas einfacher, das einfach vor der Speicherung umzustrukturieren. Trotzdem vielen Dank für die Tipps.

            Kommentar

            Lädt...
            X