Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mehrdimensionales Array benutzerdefiniert sortieren und Einträge löschen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Mehrdimensionales Array benutzerdefiniert sortieren und Einträge löschen

    Hallo Zusammen

    Ich habe eine Frage zu mehrdimensionalen Array's.
    Ich habe ein Array welches Einträge hat Bsp. unten.

    Array
    (
    [0] => Array
    (
    [Benutzername] => sadsdf
    [0] => sadsdf
    [Nachname] => d'test
    [1] => d'test
    [Vorname] => e'test
    [2] => e'test
    [Titel] =>
    [3] =>
    [Funktion] => asdf
    [4] => asdf
    [Abteilung] => test (12345)
    [5] => test (12345)
    [Eintritt] => 2014-11-27
    [6] => 2014-11-27
    [Austritt] => 0000-00-00
    [7] => 0000-00-00
    [AS_Nachname] => Muster
    [8] => Muster
    [AS_Vorname] => Max
    [9] => Max
    [Kursleiter1] => test
    [Kurszeit1] => 13:00 - 16:00
    [Kursleiter2] => test
    [Kurszeit2] => 16:00 - 17:00
    [Schulungsdatum] => 2014-05-01
    )
    )

    Nun will ich diese Einträge sortieren, ich habe mir die Sortierfunktionen schon angeschaut aber da hat es nichts für mich dabei. Ich möchte meine eigene Reihenfolge festlegen. Zusätzlich möchte ich ein paar Einträge löschen, also Key und Value.

    Gegoogelt habe ich schon, werde aber nicht schlau daraus

    Um jede Hilfe wäre ich froh, Danke!


  • #2
    Hallo,

    als erstes: benutze doch bitte den PHP Code Tag im Forum:
    PHP-Code:
    Array
    (
        [
    0] => Array
        (
            [
    Benutzername] => sadsdf
            
    [0] => sadsdf
            
    [Nachname] => d'test
            [1] => d'
    test
            
    [Vorname] => e'test
            [2] => e'
    test
            
    [Titel] => 
            [
    3] => 
            [
    Funktion] => asdf
            
    [4] => asdf
            
    [Abteilung] => test (12345)
            [
    5] => test (12345)
            [
    Eintritt] => 2014-11-27
            
    [6] => 2014-11-27
            
    [Austritt] => 0000-00-00
            
    [7] => 0000-00-00
            
    [AS_Nachname] => Muster
            
    [8] => Muster
            
    [AS_Vorname] => Max
            
    [9] => Max
            
    [Kursleiter1] => test
            
    [Kurszeit1] => 13:00 16:00
            
    [Kursleiter2] => test
            
    [Kurszeit2] => 16:00 17:00
            
    [Schulungsdatum] => 2014-05-01
        
    )

    Und als 2.:

    Ich möchte meine eigene Reihenfolge festlegen.
    [MAN]usort[/MAN]

    Zusätzlich möchte ich ein paar Einträge löschen, also Key und Value.
    [MAN]unset[/MAN]


    Liebe Grüße

    Kommentar


    • #3
      Also erstmals werde ich nun die PHP Tags verwenden.

      Mit usort muss ich aber eine Vergleichsfunktion angeben und das geht nicht!
      Es sollte folgendermassen sortiert werden:
      PHP-Code:
      Array 

          [
      0] => Array 
          ( 
              [
      Benutzername] => sadsdf 
              
      [0] => sadsdf 
              
      [Nachname] => d'test 
              [1] => d'
      test 
              
      [Vorname] => e'test 
              [2] => e'
      test 
              
      [Titel] =>  
              [
      3] =>  
              [
      Funktion] => asdf 
              
      [4] => asdf 
              
      [Abteilung] => test (12345
              [
      5] => test (12345
              [
      Eintritt] => 2014-11-27 
              
      [6] => 2014-11-27 
              
      [Austritt] => 0000-00-00 
              
      [7] => 0000-00-00 
              
      [AS_Nachname] => Muster 
              
      [8] => Muster 
              
      [AS_Vorname] => Max 
              
      [9] => Max 
              
      [Kursleiter1] => test 
              
      [Kurszeit1] => 13:00 16:00 
              
      [Kursleiter2] => test 
              
      [Kurszeit2] => 16:00 17:00 
              
      [Schulungsdatum] => 2014-05-01 
          


      sollte zu
      PHP-Code:
      Array 

          [
      0] => Array 
          ( 
              [
      Benutzername] => sadsdf 
              
      [0] => sadsdf 
              
      [Nachname] => d'test 
              [1] => d'
      test 
              
      [Vorname] => e'test 
              [2] => e'
      test 
              
      [Titel] =>  
              [
      3] =>  
              [
      Funktion] => asdf 
              
      [4] => asdf 
              
      [Abteilung] => test (12345
              [
      5] => test (12345
              [
      Eintritt] => 2014-11-27 
              
      [6] => 2014-11-27 
              
      [Austritt] => 0000-00-00 
              
      [7] => 0000-00-00 
              
      [Kursleiter1] => test 
              
      [Kurszeit1] => 13:00 16:00 
              
      [Kursleiter2] => test 
              
      [Kurszeit2] => 16:00 17:00 
              
      [Schulungsdatum] => 2014-05-01 
              
      [AS_Nachname] => Muster 
              
      [8] => Muster 
              
      [AS_Vorname] => Max 
              
      [9] => Max 
          


      werden, gleichzeitig sollten folgende Einträge gelöscht werden so das es nachher so aussieht:
      PHP-Code:
      Array 

          [
      0] => Array 
          ( 
              [
      Benutzername] => sadsdf 
              
      [Nachname] => d'test 
              [Vorname] => e'
      test 
              
      [Titel] =>  
              [
      Funktion] => asdf 
              
      [Abteilung] => test (12345
              [
      Eintritt] => 2014-11-27 
              
      [Austritt] => 0000-00-00 
              
      [Kursleiter1] => test 
              
      [Kurszeit1] => 13:00 16:00 
              
      [Kursleiter2] => test 
              
      [Kurszeit2] => 16:00 17:00 
              
      [Schulungsdatum] => 2014-05-01 
              
      [AS_Nachname] => Muster  
              
      [AS_Vorname] => Max 
          


      Nun habe ich aber gelesen das man mit unset nur den Wert (value) gelöscht wird, ich möchte den Key aber auch gelöscht haben.

      LG

      Kommentar


      • #4
        Die Funktion die du suchst heißt [MAN]ksort[/MAN].


        Nun habe ich aber gelesen das man mit unset nur den Wert (value) gelöscht wird, ich möchte den Key aber auch gelöscht haben.
        Nun, wenn du z.B. Austritt löschen möchtest mit
        PHP-Code:
        unset($array[0]['austritt']); 
        löscht du den Wert. Der Key wird dementsprechend auch gelöscht.

        Ergebnis wäre:
        PHP-Code:
        Array  
        (  
            [
        0] => Array  
            (  
                [
        Benutzername] => sadsdf  
                
        [Nachname] => d'test  
                [Vorname] => e'
        test  
                
        [Titel] =>   
                [
        Funktion] => asdf  
                
        [Abteilung] => test (12345)  
                [
        Eintritt] => 2014-11-27  
                
        [Kursleiter1] => test  
                
        [Kurszeit1] => 13:00 16:00  
                
        [Kursleiter2] => test  
                
        [Kurszeit2] => 16:00 17:00  
                
        [Schulungsdatum] => 2014-05-01  
                
        [AS_Nachname] => Muster   
                
        [AS_Vorname] => Max  
            
        )  

        Kommentar


        • #5
          Erstmals danke für deine Antwort.

          Die Elemente löschen hat so nun super funktioniert.

          Aber die Sortierfunktion bereitet mit Kopfzerbrechen.
          Auf php.net steht das die ksort Funktion ein Array nach Schlüssel sortiert.
          Nun muss ich aber mein Array nicht nach alphabet oder nummerisch sortieren, sondern würde gerne einfach ein Element von der Stelle 2 auf die Stelle 5 verschieben (Value und Key).

          Kommentar


          • #6
            Dann mach das über eine temporäre Variable

            http://www.phpgangsta.de/zwei-variablenwerte-tauschen
            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


            • #7
              Warum einfach, wenn es auch kompliziert geht?
              Ich bin auch ein Fan von Arrayfunktionen, habe aber kein Scham mal etwas "zu Fuß" zu machen.
              Leg dir doch einfach alle Schlüssel welche du behalten möchtest mit der gewünschten Sortierung in ein Array ab und bau dein Array neu zusammen:
              PHP-Code:
              //$array : Input

              $sortKeys = array (
                
              "Benutzername",
                
              "Nachname",
              // :
                
              "AS_Vorname",
              );

              //Ausmisten und Sortieren
              $newArr = array();
              foreach(
              $sortKeys as $key){
                
              $newArr[$key] = $array[0][$key];
              }
              $array[0] = $newArr
              LG jspit
              PHP-Klassen auf github

              Kommentar


              • #8
                Super, Danke Viel mal jspit!

                Genau nach was ich gesucht habe.

                Kommentar

                Lädt...
                X