<?php
$ar2 = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$ar1 = array(0, 1, 4, 1, 4, 3, 4, 5, 5);
$ar3 = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
array_multisort($ar1, $ar2, $ar3);
var_dump($ar1);
var_dump($ar2);
var_dump($ar3);
?>
<?php
$tickets = array(
array(
'id' => 13,
'pid' => 1,
'owner' => 'jachim',
'time' => '2009-09-25 10:39:42.011612',
'project' => 'jachim.be',
'title' => 'Some random ticket'
),
array(
'id' => 31,
'pid' => 2,
'owner' => 'jachim',
'time' => '2009-09-24 14:38:47.945020',
'project' => 'joggink.be',
'title' => 'Some other random ticket'
),
array(
'id' => 22,
'pid' => 3,
'owner' => 'root',
'time' => '2009-09-24 10:58:02.904198',
'project' => 'joggink.be',
'title' => 'A specific ticket'
)
);
function msort($array, $key, $sort_flags = SORT_REGULAR) {
if (is_array($array) && count($array) > 0) {
if (!empty($key)) {
$mapping = array();
foreach ($array as $k => $v) {
$sort_key = '';
if (!is_array($key)) {
$sort_key = $v[$key];
} else {
// @TODO This should be fixed, now it will be sorted as string
foreach ($key as $key_key) {
$sort_key .= $v[$key_key];
}
$sort_flags = SORT_STRING;
}
$mapping[$k] = $sort_key;
}
asort($mapping, $sort_flags);
$sorted = array();
foreach ($mapping as $k => $v) {
$sorted[] = $array[$k];
}
return $sorted;
}
}
return $array;
}
//var_dump($tickets);
$tickets = msort($tickets, array('pid','id'));
var_dump($tickets);
?>
preferences:
40.4 ms | 402 KiB | 5 Q