Home  >  Article  >  Backend Development  >  PHP multidimensional array sorting problem Sorting based on an item in a two-dimensional array_PHP tutorial

PHP multidimensional array sorting problem Sorting based on an item in a two-dimensional array_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:22:57927browse

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

Copy Code The code is as follows:

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 multisort array:
Copy the code The code is as follows:

$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)
);

Need to sort the age items in the two-dimensional array.
You need to use PHP’s built-in function array_multisort(), you can read the manual.
Custom function:
Copy code The code is as follows:

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;
}
//processing
echo “
”; 
print_r(multi_array_sort($arr,'age') );exit;
//Output
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 Daewoo
0

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/324592.htmlTechArticlePHP built-in function array_multisort requires each array to be 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. Copy the code. The code is as follows...
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