Home  >  Article  >  Backend Development  >  PHP multidimensional array sorting problem Sort according to an item in a two-dimensional array

PHP multidimensional array sorting problem Sort according to an item in a two-dimensional array

高洛峰
高洛峰Original
2016-12-22 11:10:19974browse

PHP built-in function array_multisort requires that each array is of the same size
$areas is a two-dimensional array of areas, including the number of people and times. Now we need to sort these two numbers in descending order

foreach($areaArray as &$areas) { 
$times = $numbers = array(); 
foreach($areas as $province => $v) { 
$times[$province] = $v['times']; 
$numbers[$province] = $v['numbers']; 
} 
array_multisort($times, SORT_DESC, $numbers, SORT_DESC, $areas); 
}

For example, there is a multi-array:

$arr = array( 
‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), 
‘b' => array(‘id' => 2,'name' => 3,'age' => 4), 
‘a' => array(‘id' => 8,'name' => 10,'age' => 5), 
‘c' => array(‘id' => 1,'name' => 2,'age' => 2) 
);

Required Sort the age items in a two-dimensional array.
You need to use PHP’s built-in function array_multisort(), you can read the manual.
Custom function:

function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){ 
if(is_array($multi_array)){ 
foreach ($multi_array as $row_array){ 
if(is_array($row_array)){ 
$key_array[] = $row_array[$sort_key]; 
}else{ 
return false; 
} 
} 
}else{ 
return false; 
} 
array_multisort($key_array,$sort,$multi_array); 
return $multi_array; 
} 
//处理 
echo “<pre/>”; 
print_r(multi_array_sort($arr,&#39;age&#39;));exit; 
//输出 
Array 
( 
[c] => Array 
( 
[id] => 1 
[name] => 2 
[age] => 2 
) 
[b] => Array 
( 
[id] => 2 
[name] => 3 
[age] => 4 
) 
[a] => Array 
( 
[id] => 8 
[name] => 10 
[age] => 5 
) 
[d] => Array 
( 
[id] => 5 
[name] => 1 
[age] => 7 
) 
) 
written by 大宇 
0


For more PHP multi-dimensional array sorting issues, please pay attention to the PHP Chinese website for related articles sorting according to an item in a two-dimensional array!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn