Matti Mäkitalo: Array nach Variable sortieren

Beitrag lesen

Hi,

ich beabsichtige ein Array sortiert auszugeben. Als Sortierkriterium soll eine GET-Variable (sort) dienen.

function sortiere($adata, $bdata)

{
    global $sort;
    if( $adata[$sort] == $bdata[$sort])
    {
        return 0;
    }
    return ( $adata[$sort] < $bdata[$sort]) ? 1 : -1;
}

usort($data['players'], 'sortiere');

  
Probier doch mal, in sortiere() direkt das $sort zu definieren. Also etwa so  
  
~~~php
function sortiere($adata, $bdata)  
{  
    $sort = isset($_POST['sort']) ? $_POST['sort'] : 'score';  
    if( $adata[$sort] == $bdata[$sort])  
    {  
        return 0;  
    }  
    return ( $adata[$sort] < $bdata[$sort]) ? 1 : -1;  
}

$_POST sollte als superglobale immer verfügbar sein.
Wenn du noch sichergehen willst, dass keine Hinweise wg. falschem Array-Zugriff kommen, wenn jemand die Eingabedaten manipuliert, dann kannst du auch noch

    $sort = isset($_POST['sort']) && key_exists($_POST['sort'], $adata) ? $_POST['sort'] : 'score';  

schreiben.
Bis die Tage,
Matti