Ankündigung

Einklappen
Keine Ankündigung bisher.

Teil-Werte eines Arrays in umgekehrter Reihenfolge ausgeben

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

  • Teil-Werte eines Arrays in umgekehrter Reihenfolge ausgeben

    Ich suche nach einer Möglichkeit das folgende Array in umgekehrter Anordnung ausgeben zu lassen:

    PHP-Code:
    <?php
    $arr 
    = [
    "Name1, Vorname1",
    "Name2, Vorname2",
    "Name3, Vorname3",
    "Name4, Vorname4"
    ];

    print_r($arr);

    ?>
    Das ganze sollte am Ende z.B. im Seitenquelltext folgendermaßen aussehen:

    ......
    (
    [0] => Vorname1 Name1
    [1] => Vorname2 Name2
    [2] => Vorname3 Name3
    [3] => Vorname4 Name4
    )
    ......

    Die mir bekannten Funktionen wie z.B. "array_reverse" sind aus meiner Sicht hier nicht zu gebrauchen.

    Gibt es eine Möglichkeit das über eine Funktion zu lösen? Vielleicht sogar eine recht einfache Funktion, die ich mit meinen Anfänger-Fähigkeiten gut nachvollziehen kann?

    Bis jetzt bin ich ziemlich ratlos wie ich den Inhalt der Werte überhaupt anders anordnen kann und habe im Netz auch nichts eindeutiges gefunden. Alle gefundenen Funktionen gehen nicht so tief, als das die einzelnen Werte angefasst werden können...

    Danke

    -Kalle


  • #2
    Du hast in deinem array strings, und diese strings möchtest du ändern.
    d.h. eine array funktion wird dir hier nicht weiterhelfen.
    entweder veränderst du deine strings so wie du sie haben willst bevor du diese in das array packst oder
    du lässt es durch ein foreach/array_map laufen und änderst dann die strings durch z.B. explode.

    Kommentar


    • #3
      PHP-Code:
      function change_surname($item)
      {
          
      $parts explode(', '$item);
          return (
      $parts[1]." ".$parts[0]);
      }


      $newArray array_map("change_surname"$arr);  

      //  Testausgabe
      var_dump$newArray ); 
      Siehe Handbuch zu den Funktionen

      Kommentar


      • #4
        PHP-Code:
        <?php
        $arr 
        = [
        "Name1, Vorname1",
        "Name2, Vorname2",
        "Name3, Vorname3",
        "Name4, Vorname4"
        ];
        var_dumparray_map( function($i){return implode(' ',array_reverse(explode(', '$i)));}, $arr));
        ?>

        Kommentar


        • #5
          Vielen Dank für die tollen Lösungsvorschläge, ihr habt mir sehr weitergeholfen!

          Kommentar


          • #6
            preg_replace() arbeitet ja auch mit Arrays:
            PHP-Code:
            $arr = [
            "Name1, Vorname1",
            "Name2, Vorname2",
            "Name3, Vorname3",
            "Name4, Vorname4"
            ];

            var_dump(preg_replace('~^([^,]+), (.+)$~','$2 $1',$arr)); 
            Ich würde das Array jedoch so belassen und das Splitten erst bei der Ausgabe realisieren.
            PHP-Klassen auf github

            Kommentar


            • #7
              http://php.net/manual/de/array.sorting.php

              Kommentar


              • #8
                Und was soll der Link dem Beitragsersteller bringen?

                Kommentar


                • #9
                  toosten

                  Zitat von Cnodex Beitrag anzeigen
                  Du hast in deinem array strings, und diese strings möchtest du ändern.
                  d.h. eine array funktion wird dir hier nicht weiterhelfen.
                  Das eine Array Funktion hier "nichts" bringt, wurde schon erwähnt.
                  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

                  Lädt...
                  X