web-dev-qa-db-fra.com

PHP Obtenez la valeur maximale de Array

J'essaie de mettre la main sur la plus grande valeur d'un tableau tout en préservant les étiquettes des éléments. Je sais que je peux le faire en exécutant sort (), mais si je le fais, je perds simplement les étiquettes - ce qui le rend inutile pour ce dont j'ai besoin. Voici le tableau:

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

Des idées?

42
Jamie McElwain

Ne triez pas le tableau pour obtenir la plus grande valeur.

Obtenir la valeur maximale:

$value = max($array);

Obtenez la clé correspondante:

$key = array_search($value, $array);
125
Karoly Horvath

Si vous voulez juste la plus grande valeur du tableau, utilisez la fonction max . Cela retournera la plus grande valeur, mais pas la clé correspondante. Cela ne change pas le tableau d'origine.

Si vous vous souciez de la clé que vous pourriez alors faire

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

(Edité pour inclure la suggestion de @ binaryLV)

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

Vous recherchez asort ()

3
Jacob

Vous pouvez utiliser max () pour obtenir la valeur la plus grande, mais il ne renverra qu'une valeur sans index correspondant de tableau. Ensuite, vous pouvez utiliser array_search () pour trouver la clé correspondante.

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

Sortie:

int 5
string 'd' (length=1)

Si plusieurs éléments ont la même valeur, vous devrez parcourir tableau pour obtenir toutes les clés.

Il est difficile de suggérer quelque chose de bien sans connaître le problème. Pourquoi en avez-vous besoin? Quelle est l'entrée, quelle est la sortie souhaitée?

3
binaryLV
// 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
0
erenon

greatestValue => essayez c'est très facile

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

}
echo $c;
0
Ashish pathak
$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";
0

Voici une solution à l'intérieur d'un exercice:

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");
0
Erich García
<?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/>";
?> 
0
Hanifeoglu

Trouver le nombre le plus élevé, y compris le négatif:

return max([abs(max($array)),abs(min($array))]);
0
Jason Mullings
$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);
0
ajay Sharavat

Vous devez utiliser Ksort (array ("a" => 1, "b" => 2, "c" => 4, "d" => 5)); Pour plus d’informations: http://www.w3schools.com/php/php_arrays_sort.asp

0
Vladymyr Drogovoz