PHP Get Highest Value from Array

PhpArraysSorting

Php Problem Overview


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 labels - which makes it pointless for what I need. Here's the array:

array("a"=>1,"b"=>2,"c"=>4,"d"=>5);

Any ideas?

Php Solutions


Solution 1 - Php

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

Solution 2 - Php

If you just want the largest value in the array use the max function. This will return the largest value, although not the corresponding key. It does not change the original array.

If you care about the the key you could then do

$key = array_search(max($array), $array)

(Edited to include @binaryLV's suggestion)

Solution 3 - Php

You could use max() for getting the largest value, but it will return just a value without an according index of array. Then, you could use array_search() to find the according key.

$array = array("a"=>1,"b"=>2,"c"=>4,"d"=>5);
$maxValue = max($array);
$maxIndex = array_search(max($array), $array);
var_dump($maxValue, $maxIndex);

Output:

int 5
string 'd' (length=1)

If there are multiple elements with the same value, you'll have to loop through array to get all the keys.

It's difficult to suggest something good without knowing the problem. Why do you need it? What is the input, what is the desired output?

Solution 4 - Php

$a = array(10, 20, 52, 105, 56, 89, 96);
$b = 0;
foreach ($a as $key=>$val) {
    if ($val > $b) {
        $b = $val;
    }
}
echo $b;

Solution 5 - Php

You are looking for asort()

Solution 6 - Php

Try it.

$data = array("a"=>1,"b"=>2,"c"=>4,"d"=>5); $maxKey = current(array_keys($data, max($data))); var_dump($maxKey);

Solution 7 - Php

// assuming positive numbers

$highest_key;
$highest_value = 0;
foreach ($array as $key => $value) {
    if ($value > $highest_value) {
        $highest_key = $key;
    }
}

// $highest_key holds the highest value

Solution 8 - Php

$abc=array("a"=>1,"b"=>2,"c"=>4,"e"=>7,"d"=>5);
/*program to find max value*/
$lagest = array();
$i=0;
foreach($abc as $key=>$a) {
    if($i==0) $b=$a;
    if($b<$a) {
        $b=$a;
        $k=$key;
    }
    $i++;
 }
 $lagest[$k]=$b;
 print_r($lagest);

Solution 9 - Php

<?php 
$array = array("a"=>1,"b"=>2,"c"=>4,"d"=>5); 

foreach ($array as $key => $value) {
   if ($value >= $max) 
	$max = $key; 	 
}
echo " The array in largest number :".$max."<br/>";
?> 

Solution 10 - Php

You need to use by ksort(array("a"=>1,"b"=>2,"c"=>4,"d"=>5)); for more info: http://www.w3schools.com/php/php_arrays_sort.asp

Solution 11 - Php

greatestValue=> try this its very easy

$a=array(10,20,52,105,56,89,96);
$c=0;
foreach($a as $b)
{
if($b>$c)
$c=$b;

}
echo $c;

Solution 12 - Php

Find highest number, including negative:

return max([abs(max($array)),abs(min($array))]);

Solution 13 - Php

$ee = array('a' => 50, 'b' => 25, 'c' => 5, 'd' => 80, 'e' => 40, 'f' => 152, 'g' => 45, 'h' => 28);
$Acurr = '';
$Amax = 0;

foreach($ee as $key => $value) {
	$Acurr = $value;	

	if($Acurr >= $Amax) {
		$Amax = $Acurr;	
	}
}

echo "greatest number is $Amax";

Solution 14 - Php

Here a solution inside an exercise:

function high($sentence)
{
    $alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
    $alphabet = array_flip($alphabet);

    $words = explode(" ", $sentence);

    foreach ($words as $word) {
        $letters = str_split($word);
        $points = 0;
        foreach ($letters as $letter)
            $points += $alphabet[$letter];
        $score[$word] = $points;
    }

    $value = max($score);
    $key = array_search($value, $score);

    return $key;
}

echo high("what time are we climbing up the volcano");

Solution 15 - Php

Find largest number without using built-in functions in PHP

<?php
    $array = array(1,2,3);
    $flag = 0;
    foreach($array as $key=>$val){
        if($val > $flag){
           $flag = $val;
        }
        echo "Max value with each iteration: ".$flag."<br/>";
    }
    echo "Final max value: ".$flag;
    ?>

Solution 16 - Php

asort() is the way to go:

$array = array("a"=>1,"b"=>2,"c"=>4,"d"=>5);
asort($array);
$highestValue       = end($array);
$keyForHighestValue = key($array);

Solution 17 - Php

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJamie McElwainView Question on Stackoverflow
Solution 1 - PhpKaroly HorvathView Answer on Stackoverflow
Solution 2 - PhpborribleView Answer on Stackoverflow
Solution 3 - PhpbinaryLVView Answer on Stackoverflow
Solution 4 - PhpRakeshView Answer on Stackoverflow
Solution 5 - PhpJacobView Answer on Stackoverflow
Solution 6 - PhpYin YongView Answer on Stackoverflow
Solution 7 - PhperenonView Answer on Stackoverflow
Solution 8 - Phpajay SharavatView Answer on Stackoverflow
Solution 9 - PhpHanifeogluView Answer on Stackoverflow
Solution 10 - PhpVladymyr DrogovozView Answer on Stackoverflow
Solution 11 - PhpAshish PathakView Answer on Stackoverflow
Solution 12 - PhpJason MullingsView Answer on Stackoverflow
Solution 13 - PhpKhushal Singh DangwalView Answer on Stackoverflow
Solution 14 - PhpErich GarcíaView Answer on Stackoverflow
Solution 15 - PhpdevView Answer on Stackoverflow
Solution 16 - PhpStefan GehrigView Answer on Stackoverflow
Solution 17 - PhpSergeSView Answer on Stackoverflow