二维数组按照其中一个键值排序 : ?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键重新排序了。
原文地址:二维数组按照其中一个键值排序, 感谢原作者分享。