note 43176 modified in function.array-multisort by vrana
| From: | vrana@php.net | Date: | Tue, 17 Aug 2004 13:59:02 +0000 |
| Subject: | note 43176 modified in function.array-multisort by vrana | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-79965@lists.php.net to get a copy of this message | ||
All functions described here work for arrays like:
column1[data1a,data1b]
column2[data2a,data2b]
If you have an array by rows, like
row1[data1a,data2a]
row2[data1b,data2b]
This function may help you
<?php
function multisort(&$array, $sortby, $order='ASC') {
$order_s = SORT_DESC;
if ($order == 'ASC') {
$order_s = SORT_ASC;
}
if (!isset($array -> $sortby))
return;
asort($array->$sortby, $order_s);
$sorting = array();
foreach ($array -> $sortby as $key => $val) {
$sorting[] = $key;
}
foreach ($array as $key => $val) {
//sort key
$valaux = array();
for($i=0; $i<count($sorting); $i++) {
$valaux[] = $val[$sorting[$i]];
}
$array->$key = $valaux;
}
}
?>
--was--
All functions described here work for arrays like:
column1[data1a,data1b]
column2[data2a,data2b]
If you have an array by rows, like
row1[data1a,data2a]
row2[data1b,data2b]
This function may help you
function multisort(&$array, $sortby, $order='ASC') {
$order_s = SORT_DESC;
if ($order == 'ASC') {
$order_s = SORT_ASC;
}
if (!isset($array -> $sortby))
return;
asort($array->$sortby, $order_s);
$sorting = array();
foreach ($array -> $sortby as $key => $val) {
$sorting[] = $key;
}
foreach ($array as $key => $val) {
//sort key
$valaux = array();
for($i=0; $i<count($sorting); $i++) {
$valaux[] = $val[$sorting[$i]];
}
$array->$key = $valaux;
}
}
http://php.net/manual/en/function.array-multisort.php