Maak gebruik van
usort en schrijf een eenvoudige (callback)functie.
EDIT: volgens mij kun je het tweede voorbeeld nagenoeg letterlijk overnemen.
Link gekopieerd
Als je met multisort
array_multisort() bedoelt:
<?php
$data[] = array('id' => '1', 'name' => 'Bob');
$data[] = array('id' => '2', 'name' => 'Andre');
$data[] = array('id' => '3', 'name' => 'Nelleke');
$data[] = array('id' => '4', 'name' => 'Xander');
$data[] = array('id' => '5', 'name' => 'Frits');
foreach ($data as $key => $row) {
$ids[$key] = $row['id'];
$names[$key] = $row['name'];
}
array_multisort($names, SORT_ASC, SORT_LOCALE_STRING, $ids, SORT_ASC, SORT_NUMERIC, $data);
?>
Link gekopieerd
Hasta la pasta ..
<?php
function compareOnName($a, $b)
{
return strcmp($a['name'], $b['name']);
}
usort($data, "compareOnName");
?>
Link gekopieerd
Of, nog korter, gebruik een anonieme functie:
<?php
usort($data, function($a, $b) {
return strcmp($a['name'], $b['name']);
});
?>
Whee~
Link gekopieerd
>> Of, nog korter, gebruik een anonieme functie
Een closure :-)
Link gekopieerd
Of efficiƫnter:
<?php
$data[] = array('id'=> 2, 'name'=>'Andre');
$data[] = array('id'=> 1, 'name'=>'Bob');
$data[] = array('id'=> 5, 'name'=>'Frits');
$data[] = array('id'=> 3, 'name'=>'Nelleke');
$data[] = array('id'=> 4, 'name'=>'Xander');
?>
Klaar. \o/
Link gekopieerd