The PHP built-in function array_multisort requires that each array has the same size. $areas is a two-dimensional array of areas, including the number of people and times. Now we need to sort the two numbers in descending order. Copy the 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 multi-array:
Copy code
$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)
);
Needs 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:
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;
}
//process
echo “