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

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)
  }
}











转载于:https://www.cnblogs.com/pansidong/p/9822559.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值