アイテムラベルを保持したまま、配列内の最大値を取得しようとしています。 sort()を実行することでこれができることはわかっていますが、そうすると、ラベルが失われるだけです。配列は次のとおりです。
array("a"=>1,"b"=>2,"c"=>4,"d"=>5);
何か案は?
最大値を取得するために配列をソートしないでください。
最大値を取得します。
$value = max($array);
対応するキーを取得します。
$key = array_search($value, $array);
配列の最大値だけが必要な場合は、 max 関数を使用します。これは、対応するキーではなく、最大値を返します。元の配列は変更されません。
キーが気になる場合は、次に行うことができます
$key = array_search(max($array), $array)
(@binaryLVの提案を含めるように編集)
あなたが探している asort()
$a = array(10, 20, 52, 105, 56, 89, 96);
$b = 0;
foreach ($a as $key=>$val) {
if ($val > $b) {
$b = $val;
}
}
echo $b;
最大値を取得するには max() を使用できますが、配列の対応するインデックスなしで値のみを返します。次に、 array_search() を使用して、対応するキーを見つけることができます。
$array = array("a"=>1,"b"=>2,"c"=>4,"d"=>5);
$maxValue = max($array);
$maxIndex = array_search(max($array), $array);
var_dump($maxValue, $maxIndex);
出力:
int 5
string 'd' (length=1)
同じ値を持つ要素が複数ある場合は、配列をループしてすべてのキーを取得する必要があります。
問題を知らずに良いものを提案することは困難です。なぜあなたはそれが必要なのですか?入力は何ですか、望ましい出力は何ですか?
// 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
greatestValue =>非常に簡単に試してみてください
$a=array(10,20,52,105,56,89,96);
$c=0;
foreach($a as $b)
{
if($b>$c)
$c=$b;
}
echo $c;
$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";
演習内のソリューション:
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");
<?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/>";
?>
負の値を含む最大数を見つけます:
return max([abs(max($array)),abs(min($array))]);
$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);
Ksort(array( "a" => 1、 "b" => 2、 "c" => 4、 "d" => 5));で使用する必要があります。詳細: http://www.w3schools.com/php/php_arrays_sort.asp