umsortiert: Sortieren mit "ungewöhnlichen" Konventionen

Beitrag lesen

Hallo Vinzenz,

Teile Dein Array in Teilarrays auf. Kombiniere nach dem Sortieren der Teilarrays diese in der von Dir gewünschten Reihenfolge.

Das war ein guter Hinweis, verteilen und anschliessendes zusammensetzen ist tatsächlich eine recht einfache Lösung. Sollte auch effizienter sein.

  
function sort($input)  
{  
    // 0 = tail, 1 = head  
    $parts = array(array(), array());  
    foreach ($input as $key => $value) {  
        $target = is_scalar($value) || is_null($value) || empty($value) || array_key_exists(0, $value);  
        $parts[$target][$key] = $value;  
    }  
    return array_merge($parts[1], $parts[0]);  
}