对一个给定的二维数组按照指定的键值进行排序

public function set_s(){

$arr = [
['one' => 6,'two' => 19],
['one' => 36,'two' => 3],
['one' => 26,'two' => 3],
['one' => 2,'two' => 84],
['one' => 5,'two' => 35],
['one' => 6,'two' => 56],
['one' => 7,'two' => 7],
['one' => 88,'two' => 8],
['one' => 23,'two' => 22],
['one' => 1,'two' => 29],
];

$arr1 = $this->array_sort($arr,'one','asc');
dump($arr1);

echo '-------------------------------';

$arr2 = $this->array_sort($arr,'one','desc');
dump($arr2);

}


//对一个给定的二维数组按照指定的键值进行排序
public function array_sort($arr,$keys,$type = 'asc'){
$keysvalue = $new_array = array();
foreach ($arr as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}

reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $arr[$k];
}
return $new_array;
}


array(10) {
  [9] => array(2) {
    ["one"] => int(1)
    ["two"] => int(29)
  }
  [3] => array(2) {
    ["one"] => int(2)
    ["two"] => int(84)
  }
  [4] => array(2) {
    ["one"] => int(5)
    ["two"] => int(35)
  }
  [0] => array(2) {
    ["one"] => int(6)
    ["two"] => int(19)
  }
  [5] => array(2) {
    ["one"] => int(6)
    ["two"] => int(56)
  }
  [6] => array(2) {
    ["one"] => int(7)
    ["two"] => int(7)
  }
  [8] => array(2) {
    ["one"] => int(23)
    ["two"] => int(22)
  }
  [2] => array(2) {
    ["one"] => int(26)
    ["two"] => int(3)
  }
  [1] => array(2) {
    ["one"] => int(36)
    ["two"] => int(3)
  }
  [7] => array(2) {
    ["one"] => int(88)
    ["two"] => int(8)
  }
}
-------------------------------
array(10) {
  [7] => array(2) {
    ["one"] => int(88)
    ["two"] => int(8)
  }
  [1] => array(2) {
    ["one"] => int(36)
    ["two"] => int(3)
  }
  [2] => array(2) {
    ["one"] => int(26)
    ["two"] => int(3)
  }
  [8] => array(2) {
    ["one"] => int(23)
    ["two"] => int(22)
  }
  [6] => array(2) {
    ["one"] => int(7)
    ["two"] => int(7)
  }
  [5] => array(2) {
    ["one"] => int(6)
    ["two"] => int(56)
  }
  [0] => array(2) {
    ["one"] => int(6)
    ["two"] => int(19)
  }
  [4] => array(2) {
    ["one"] => int(5)
    ["two"] => int(35)
  }
  [3] => array(2) {
    ["one"] => int(2)
    ["two"] => int(84)
  }
  [9] => array(2) {
    ["one"] => int(1)
    ["two"] => int(29)
  }
}











posted @   盘思动  阅读(677)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2017-10-20 小程序navigatorTo缺点和修正方法
2017-10-20 字符串转化为整型,为0,而不是1
点击右上角即可分享
微信分享提示