webentwicklung-frage-antwort-db.com.de

PHP Holen Sie den höchsten Wert von Array

Ich versuche, den größten Wert in einem Array zu erhalten, während die Elementbeschriftungen erhalten bleiben. Ich weiß, dass ich dies durch das Ausführen von sort () tun kann, aber wenn ich das tue, verliere ich einfach die Labels - was es für das, was ich brauche, nicht macht. Hier ist das Array:

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

Irgendwelche Ideen?

42
Jamie McElwain

Sortieren Sie das Array nicht nach dem größten Wert.

Holen Sie sich den maximalen Wert:

$value = max($array);

Holen Sie sich den entsprechenden Schlüssel:

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

Wenn Sie nur den größten Wert im Array wünschen, verwenden Sie die Funktion max . Dies gibt den größten Wert zurück, jedoch nicht den entsprechenden Schlüssel. Das ursprüngliche Array wird nicht geändert.

Wenn Sie sich für den Schlüssel interessieren, könnten Sie dies tun

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

(Bearbeitet, um den Vorschlag von @ binaryLV aufzunehmen)

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

Sie suchen nach asort ()

3
Jacob

Sie könnten max () verwenden, um den größten Wert zu erhalten, es wird jedoch nur ein Wert ohne entsprechenden Index des Arrays zurückgegeben. Dann können Sie array_search () verwenden, um den entsprechenden Schlüssel zu finden.

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

Ausgabe:

int 5
string 'd' (length=1)

Wenn mehrere Elemente mit demselben Wert vorhanden sind, müssen Sie das Array durchlaufen, um alle Schlüssel zu erhalten.

Es ist schwierig, etwas Gutes vorzuschlagen, ohne das Problem zu kennen. Wieso brauchst du es? Was ist die Eingabe, was ist die gewünschte Ausgabe?

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 => probiere es sehr einfach aus

$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";

Hier eine Lösung in einer Übung:

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

Finden Sie die höchste Zahl, einschließlich der negativen:

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

Sie müssen von Ksort (array ("a" => 1, "b" => 2, "c" => 4, "d" => 5));) für weitere Informationen: http://www.w3schools.com/php/php_arrays_sort.asp

0