Home  >  Article  >  php教程  >  二维数组按照其中一个键值排序

二维数组按照其中一个键值排序

WBOY
WBOYOriginal
2016-06-06 20:11:25906browse

二维数组按照其中一个键值排序 : ?php function multisort( }// Get args number. $arg_count = func_num_args();// Get keys to sort by and put them to SortRule array. for ($i = 1; $i $arg_count; $i++) { $arg = func_get_arg($i); if (!preg_match(

二维数组按照其中一个键值排序

<?php function multisort(&$array, $key_name, $sort_order = 'SORT_ASC', $sort_type = 'SORT_REGULAR') {
 if (!is_array($array)) {
 return $array;
 }
// Get args number.
 $arg_count = func_num_args();
// Get keys to sort by and put them to SortRule array.
 for ($i = 1; $i < $arg_count; $i++) { $arg = func_get_arg($i); if (!preg_match('/SORT/', $arg)) { $key_name_list[] = $arg; $sort_rule[] = '$'.$arg; } else { $sort_rule[] = $arg; } } // Get the values according to the keys and put them to array. foreach ($array as $key => $info) {
 foreach ($key_name_list as $key_name) {
 ${$key_name}[$key] = $info[$key_name];
 }
 }
// Create the eval string and eval it.
 $eval_str = 'array_multisort('.implode(',', $sort_rule).', $array);';
 eval($eval_str);
 return $array;
}
$data = Array
 (
 0 => Array
 (
 'title' => '
 U8
 -HR宁夏',
 'linkline' => 'space.php?uid=4018&do=album&id=498',
 'time' => 1275012236,
 'content' => '
 U8
 -HR宁夏',
 'from' => 'album'
 ),
 1 => Array
 (
 'title' => '
 u8
  AII-in-One全国巡展-济宁站',
 'linkline' => 'space.php?uid=2770&do=album&id=339',
 'time' => 1268628887,
 'content' => '
 u8
  AII-in-One全国巡展-济宁站',
 'from' => 'album'
 ),
 2 => Array
 (
 'title' => '
 U8
  ALL-IN-ONE巡展-河南站',
 'linkline' => 'space.php?uid=1282&do=album&id=359',
 'time' => 1269333609,
 'content' => '
 U8
  ALL-IN-ONE巡展-河南站',
 'from' => 'album'
 ),
 3 => Array
 (
 'title' => '先睹为快
 U8
  All-in-One体验光盘',
 'linkline' => 'space.php?uid=3857&do=album&id=665',
 'time' => 1285049939,
 'content' => '先睹为快
 U8
  All-in-One体验光盘',
 'from' => 'album'
 )
 );
 print_r(multisort($data, 'time', 'SORT_DESC'));
?>
 

这样就将$data数组按照自己的time键重新排序了。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn