I\'m trying to get hold of the largest value in an array, while still preserving the item labels. I know I can do this by running sort(), but if I do so I simply lose the la
Don't sort the array to get the largest value.
Get the max value:
$value = max($array);
Get the corresponding key:
$key = array_search($value, $array);
Try it.
$data = array("a"=>1,"b"=>2,"c"=>4,"d"=>5);
$maxKey = current(array_keys($data, max($data)));
var_dump($maxKey);
Try using asort().
From documentation:
asort - Sort an array and maintain index association
Description:
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant.
$a = array(10, 20, 52, 105, 56, 89, 96);
$b = 0;
foreach ($a as $key=>$val) {
if ($val > $b) {
$b = $val;
}
}
echo $b;
Find highest number, including negative:
return max([abs(max($array)),abs(min($array))]);
You are looking for asort()