php 根據陣列中的指定鍵值排序,根據陣列中指定鍵值分組
一、 根據陣列中的指定鍵值排序
1.1 原陣列如下:
$person = array(array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180),
array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150),
array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156),
array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190),
array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200),
array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110),
array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170)
);
1.2 排序程式碼
public function test($person){
$newArr = array();
foreach($person as $key=>$v){
$newArr[$key]['weight'] = $v['weight'];
}
array_multisort($newArr,SORT_ASC,$person);//SORT_DESC為降序,SORT_ASC為升序
dump($person);
}
1.3 排序結果
array(7) { [0] => array(4) { ["id"] => int(2) ["name"] => string(3) "tom" ["weight"] => int(53) ["height"] => int(150) } [1] => array(4) { ["id"] => int(7) ["name"] => string(6) "jordan" ["weight"] => int(70) ["height"] => int(170) } [2] => array(4) { ["id"] => int(5) ["name"] => string(6) "linken" ["weight"] => int(80) ["height"] => int(200) } [3] => array(4) { ["id"] => int(6) ["name"] => string(6) "madana" ["weight"] => int(95) ["height"] => int(110) } [4] => array(4) { ["id"] => int(1) ["name"] => string(2) "fj" ["weight"] => int(100) ["height"] => int(180) } [5] => array(4) { ["id"] => int(4) ["name"] => string(4) "bill" ["weight"] => int(110) ["height"] => int(190) } [6] => array(4) { ["id"] => int(3) ["name"] => string(5) "jerry" ["weight"] => int(120) ["height"] => int(156) } }
二、根據陣列中指定鍵值分組
2.1 原陣列如下:
$arr = [
[
'initial' => 'A',
'typename' => '陳端'],
[
'initial' => 'F',
'typename' =>'程式設計'
],
[
'initial' => 'F',
'typename' => '屌絲'
]
];
2.2 分組程式碼
$result = []; //初始化一個數組
foreach($arr as $k=>$v){
$result[$v['initial']][] = $v; //根據initial 進行陣列重新賦值
}
dump($result);//result 就是分組之後的返回值
2.3 分組結果
array(2) {
["A"] => array(1) {
[0] => array(2) {
["initial"] => string(1) "A"
["typename"] => string(6) "陳端"
}
}
["F"] => array(2) {
[0] => array(2) {
["initial"] => string(1) "F"
["typename"] => string(6) "程式設計"
}
[1] => array(2) {
["initial"] => string(1) "F"
["typename"] => string(6) "屌絲"
}
}
}