I have an array composed of arrays. I want to sort the parent array by a property of the child arrays. Here's an example
array(2){
[0]=> array(3){
[0]=> string(6) "105945"
[1]=> string(10) "First name"
[2]=> float(0.080878465391)
}
[1]=> array(3) {
[0]=> string(6) "109145"
[1]=> string(11) "Second name"
[2]=> float(0.0504154818384)
}
}
I would like to sort the parent array by [2]
ascending in the child arrays, so in this case the result would be the child arrays reversed (.05
, 08
). Is this possible using any of the numerous PHP sort functions?
PHP - Sort Functions For Arraysrsort() - sort arrays in descending order. asort() - sort associative arrays in ascending order, according to the value. ksort() - sort associative arrays in ascending order, according to the key. arsort() - sort associative arrays in descending order, according to the value.
JavaScript arrays are zero-indexed: the first element of an array is at index 0 , the second is at index 1 , and so on — and the last element is at the value of the array's length property minus 1 .
The ksort() function sorts an associative array in ascending order, according to the key. Tip: Use the krsort() function to sort an associative array in descending order, according to the key. Tip: Use the asort() function to sort an associative array in ascending order, according to the value.
You can make use of usort function as:
$arr = array(
array("105945", "First name", 0.080878465391),
array("109145", "Second name", 0.0504154818384)
);
function cmp($a, $b){
if($a[2] == $b[2]){
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
usort($arr, "cmp");
As of PHP >= 7.0 you can use usort in combination with the spaceship operator
usort($arr, function ($a, $b) {
return $a[2] <=> $b[2];
});
see: http://php.net/manual/de/migration70.new-features.php
For database like patterns use array_multisort as seen in example #3.
For example:
$sort = array();
foreach ($data as $key => $row) {
$sort[$key] = $row['basis'];
}
array_multisort($sort, SORT_ASC, $data);
where $data
is your data array and basis
is the element used for sorting.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With