最新下载
热门教程
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 
PHP实现二维数组根据key进行排序的教程
时间:2022-06-24 21:22:52 编辑:袖梨 来源:一聚教程网
在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果;但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现。下面就讲述一下如何实现二维数组根据key进行排序。
实现方法:
| 代码如下 | 复制代码 | 
| 
 /** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/11/26 0002 
 * Time: 下午 2:43 
 * Project: PHP开发小技巧 
 * Power: 实现二维数组根据key进行排序 
 * ======================================= 
 */ 
/** 
 * 二维数组排序 
 * @param array $arr 需要排序的二维数组 
 * @param string $keys 所根据排序的key 
 * @param string $type 排序类型,desc、asc 
 * @return array $new_array 排好序的结果 
 */ 
functionarray_sort($arr,$keys,$type='desc') 
{ 
  $key_value=$new_array=array(); 
  foreach($arras$k=>$v) { 
    $key_value[$k] =$v[$keys]; 
  } 
  if($type=='asc') { 
    asort($key_value); 
  }else{ 
    arsort($key_value); 
  } 
  reset($key_value); 
  foreach($key_valueas$k=>$v) { 
    $new_array[$k] =$arr[$k]; 
  } 
  return$new_array; 
} 
$arr=array( 
  array( 
    'name'=>'a', 
    'sex'=>'m', 
    'sort'=> 5 
  ), 
  array( 
    'name'=>'c', 
    'sex'=>'m', 
    'sort'=> 8 
  ), 
  array( 
    'name'=>'g', 
    'sex'=>'m', 
    'sort'=> 3 
  ), 
  array( 
    'name'=>'e', 
    'sex'=>'w', 
    'sort'=> 6 
  ), 
  array( 
    'name'=>'b', 
    'sex'=>'w', 
    'sort'=> 2 
  ), 
); 
//打印出原数组 
print_r($arr); 
//打印出排好序的数组 
print_r(array_sort($arr,'name')); 
?> 
 | |
通过打印出的结果我们就可以看到,数组根据“name”进行排序。
| 代码如下 | 复制代码 | 
| 
 //原数组 
Array 
( 
  [0] => Array 
    ( 
      [name] => a 
      [sex] => m 
      [sort] => 5 
    ) 
  [1] => Array 
    ( 
      [name] => c 
      [sex] => m 
      [sort] => 8 
    ) 
  [2] => Array 
    ( 
      [name] => g 
      [sex] => m 
      [sort] => 3 
    ) 
  [3] => Array 
    ( 
      [name] => e 
      [sex] => w 
      [sort] => 6 
    ) 
  [4] => Array 
    ( 
      [name] => b 
      [sex] => w 
      [sort] => 2 
    ) 
) 
//排序后数组 
Array 
( 
  [2] => Array 
    ( 
      [name] => g 
      [sex] => m 
      [sort] => 3 
    ) 
  [3] => Array 
    ( 
      [name] => e 
      [sex] => w 
      [sort] => 6 
    ) 
  [1] => Array 
    ( 
      [name] => c 
      [sex] => m 
      [sort] => 8 
    ) 
  [4] => Array 
    ( 
      [name] => b 
      [sex] => w 
      [sort] => 2 
    ) 
  [0] => Array 
    ( 
      [name] => a 
      [sex] => m 
      [sort] => 5 
    ) 
) 
 | |
相关文章
- 潮汐守望者希瑟拉强度怎么样 11-04
 - 洛克王国世界刺电环如何进化 11-04
 - 原神幽境危战霜役人打法教学 11-04
 - 超自然行动组最新小抄分享 2025实用攻略技巧汇总 11-04
 - 王者荣耀西施奖励网站在哪进 西施奖励最新网页在线入口 11-04
 - 超自然行动组可用的兑换码有哪些 2025最新有效兑换码领取 11-04