Rolf B: Array sortieren

Beitrag lesen

problematische Seite

Hallo pl,

Ja. Verwende einen Sortier-Callback.

function sortByFolderAndTitle($a, $b)
{
   $cmpFolder = ($a['isa'] == 'folder') <=> ($b['isa'] == 'folder')
   if ($cmpFolder == 0)
      $cmpFolder = $a['title'] <=> $b['title'];

   return $cmpFolder;
}

// Oder, nach Anwendung einer Uglifizierung:

function sortByFolderAndTitle($a, $b)
{
   return ($f=($a['isa']=='folder')<=>($b['isa']=='folder'))!=0?$f:$a['title']<=>$b['title'];
}

Ach ja. Du verwendest ja ein nicht mehr unterstütztes PHP (alles vor 7.2). Dann musst du den <=> Operator entsprechend ersetzen, z.B. durch eine spaceShip Funktion.

function spaceShip($a, $b) {
   if (PHP_MAJOR_VERSION > 6) die("Replace me with <=> !");
   return $a<=$b?$a==$b?0:-1:1;
}

Rolf

--
sumpsi - posui - clusi