Array anhand eines Musterarrays sortieren

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

  • Array anhand eines Musterarrays sortieren

    Hallo,
    mir fehlt gerade eine zündende Idee: Ich möchte ein array anhand eines Musterarrays sortieren.
    In dem Musterarray sind beispielsweise folgende Werte ohne irgendwelche Trivialsortierung:
    Code:
    //Musterarray
    array (
             [0] => "Birne"
             [1] => "Apfel"
             [2] => "Gurke"
             [3] => "Banane"
         )
    Code:
    //Array
    array (
             [0] => "Banane"
             [1] => "Gurke"
             [2] => "Birne"
         )
    Ich brauch jetzt eine Vergleichsfunktion die mir das Array von der Reihenfolge her genauso sortiert, wie dies im Musterarray der Fall ist.

    Ich hoffe ich hab mich verständlich ausgedrückt.

    mfG

    niko

  • #2
    PHP-Code:
    function sort_by_ref($sort$ref) {
        
    $result = array();
        foreach (
    $ref as $ref)
            if ((
    $pos array_search($ref$sort)) !== false) {
                
    $result[] = $sort[$pos];
                unset(
    $sort[$pos]);
            }
        
    $result array_merge($result$sort);
        return 
    $result;
    }

    $reference = array('Birne''Apfel''Gurke');
    $data = array('Apfel''Gurke''Schnitzel''Birne');


    echo 
    '<pre>';

    print_r($reference);
    print_r($data);
    print_r(sort_by_ref($data$reference));

    echo 
    '</pre>'
    so?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hallo,

      dankeschön für das snippet, aber ein Denkanstoss hätts auch getan .

      Ich dachte ich benutze eine Vergleichsfunktion als Parameter für usort. Das geht ja aber nicht, weil ich ja nicht Bubblesortmäßig immer 2 Elemente tauschen kann, sondern immer gegen alle prüfen muss.

      Mit deiner Erlaubnis poste ich den Schnipsel noch in einem anderen Forum, in dem ich dieselbe Frage gestellt habe (der Vollständigkeit halber)...

      cu

      niko

      Kommentar

      Lädt...
      X