note 92981 deleted from function.array-multisort by danbrown
| From: | danbrown@php.net | Date: | Tue, 18 Aug 2009 17:22:10 +0000 |
| Subject: | note 92981 deleted from function.array-multisort by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-159606@lists.php.net to get a copy of this message | ||
Note Submitter: kexianbin at diyism dot com
----
Maybe, "my_array_multisort" is better than
"php_multisort" from php {dot} net [arrt] sebble.com
and "array_msort" from cagret at gmail dot com:
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
function my_array_multisort(&$data_table, $col_typ_dirs)
{foreach ($data_table as $v)
{foreach ($col_typ_dirs as $u)
{$tmp=explode(',', $u);
${"col$tmp[0]"}[]=$v[$tmp[0]];
}
}
$par_arr='';
foreach ($col_typ_dirs as $v)
{$par_arr=$par_arr.'$col'.$v.',';
}
eval('array_multisort('.$par_arr.'$data_table);');
}
my_array_multisort($data,
array('volume,SORT_REGULAR,SORT_DESC',
'edition,SORT_REGULAR,SORT_ASC')
);
var_export($data);