Ankündigung

Einklappen
Keine Ankündigung bisher.

Objekte sortieren

Einklappen

Neue Werbung 2019

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

  • Objekte sortieren

    Hallo!

    Ich habe eine relativ komplexe Datenstruktur, die ich sortieren muss:
    Code:
    Array
    (
        [0] => Object
    		(
    			["field1"] => 10
    			["field2"] => 11
    			["field3"] => 12
    			["field4"] => Array
    				(
    					[29] => Array
    						(
    							[144] => Array
    								(
    									["sortelement"] => "Sortable String 3"
    								)
    						)
    				)
    			["field5"] => 13
    			["field6"] => 14
    		)
    	[1] => Object
    		(
    			["field1"] => 15
    			["field2"] => 16
    			["field3"] => 17
    			["field4"] => Array
    				(
    					[29] => Array
    						(
    							[145] => Array
    								(
    									["sortelement"] => "Sortable String 1"
    								)
    						)
    				)
    			["field5"] => 18
    			["field6"] => 19
    		)
    	[2] => Object
    		(
    			["field1"] => 20
    			["field2"] => 21
    			["field3"] => 22
    			["field4"] => Array
    				(
    					[29] => Array
    						(
    							[146] => Array
    								(
    									["sortelement"] => "Sortable String 2"
    								)
    						)
    				)
    			["field5"] => 23
    			["field6"] => 24
    		)
    )
    Die Objekte im übergeordneten Array müssen nach den Inhalten der Elemente mit dem Key "sortelement" aufsteigend sortiert werden.
    Wie stelle ich das an?

    Vielen Dank im Voraus für eure Hilfe!

    Freundliche Grüße,
    Gerald


  • #2
    usort()

    Kommentar


    • #3
      Hallo!

      Danke für die rasche Antwort.
      Ich bin völliger PHP-Anfänger.
      Das sieht sehr kompliziert aus.
      Hat das einen Vorteil gegenüber dem Code:
      Code:
      $sortArray = array(); 
      foreach($arrayToSort as $key => $tmp) { 
      	$tmp = $tmp->field4[29];
      	$tmp = reset($tmp);
      	$tmp = $tmp["sortelement"];
      	$sortArray[$key] = $tmp; 
      }
      array_multisort($sortArray, SORT_ASC, SORT_STRING, $arrayToSort);
      LG Gerald

      Kommentar


      • #4
        Deine Datenstruktur ist absoluter Müll. Vielleicht räumst du hier erstmal auf - oder ist das wieder eines dieser dubiosen Beispiele?

        Kommentar


        • #5
          Hi!

          Danke für den Hinweis

          Die Datenstruktur ist mir allerdings vorgegeben.
          Mein Job ist nur, die Objekt wie beschrieben zu sortieren.

          Hat usort() einen Vorteil gegenüber meinem Code, sodass ich mich in diese Funktion hineinarbeiten sollte?

          LG Gerald

          Kommentar


          • #6
            Keinen Vorteil?

            Kommentar


            • #7
              Schau dir an was die beiden Funktionen im Detail tun und entscheide dies selbst. Die Funktionen sind ausreichend dokumentiert.

              Kommentar

              Lädt...
              X