码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-20 19:52:49      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:int   cti   desc   return   new   UNC   echo   reset   value   

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











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

标签:int   cti   desc   return   new   UNC   echo   reset   value   

原文地址:https://www.cnblogs.com/pansidong/p/9822559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!