PHP7中文手册2018 带注释 最新chm版
- /**
- * 对查询结果集进行排序
- * @access public
- * @param array $list 查询结果
- * @param string $field 排序的字段名
- * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序)
- * @return array
- */
- function list_sort_by($list, $field, $sortby = 'asc')
- {
- if (is_array($list))
- {
- $refer = $resultSet = array();
- foreach ($list as $i => $data)
- {
- $refer[$i] = &$data[$field];
- }
- switch ($sortby)
- {
- case 'asc': // 正向排序
- asort($refer);
- break;
- case 'desc': // 逆向排序
- arsort($refer);
- break;
- case 'nat': // 自然排序
- natcasesort($refer);
- break;
- }
- foreach ($refer as $key => $val)
- {
- $resultSet[] = &$list[$key];
- }
- return $resultSet;
- }
- return false;
- }
- /**
- * 例子
- * 求:根据二维数组的id键值降序排列(也就是id越大的排在越前)?
- */
- $list = array(
- 0 => array(
- 'id' => 1,
- 'name' => '第一'
- ),
- 1 => array(
- 'id' => 3,
- 'name' => '第三'
- ),
- 2 => array(
- 'id' => 2,
- 'name' => '第二'
- ),
- 3 => array(
- 'id' => 4,
- 'name' => '第四'
- ),
- );
- //解答
- $new_list = list_sort_by($list, 'id', 'desc');
转载请注明:谷谷点程序 » php对二维数组某个键排序