寻找循环中的最大值
Finding the higest value in a loop
我正在尝试 return 数组中的最高百分比值以及名称、平均值、百分比、颜色等所有其他信息。
foreach ($array as $value) {
$name = getName($value);
$average = getAverage($value);
$percentage = getPercentage($value);
$color = getColor($value);
return $percentage;
}
我如何实施解决方案以找到所需的值(最高百分比)和 return 如果是数组。我在想排序可能是一种方式,但我仍然不清楚我应该怎么做。
试试这个
$percentage1=0;
$datas=array();
foreach ($array as $value) {
$name = getName($value);
$average = getAverage($value);
$percentage = getPercentage($value);
$color = getColor($value);
if($percentage>$percentage1)
{
$percentage1=$percentage;
$datas['name']=$name;
$datas['average']=$average;
$datas['percentage']=$percentage;
$datas['color']=$color;
}
return $datas;
}
虽然你问题中的代码没有任何意义,但如果数组中的所有值都是数字,你可以使用 php max 函数来获取最大值。
例如:
<?php $highest_value = max($array); ?>
如果你想使用内置的PHP排序,你可以使用usort()
。它使用自定义函数对数组进行排序。
usort($array, function($a, $b){
$percentage_a = getPercentage($a);
$percentage_b = getPercentage($b);
if($percentage_a === $percentage_b) {
return 0;
}
return ($percentage_a > $percentage_b)? -1 : 1;
});
return array(
"name" => getName($array[0]),
"average" => getAverage($array[0]),
"percentage" => getPercentage($array[0]),
"color" = getColor($array[0]));
然后,您的数组将按百分比最高的顺序排序。
如果你不需要匿名函数,你可以定义它并用它的名字调用 usort :
function getMaxPercentage($a, $b){
$percentage_a = getPercentage($a);
$percentage_b = getPercentage($b);
if($percentage_a === $percentage_b) {
return 0;
}
return ($percentage_a > $percentage_b)? -1 : 1;
}
usort($array, 'getMaxPercentage');
return return array(
"name" => getName($array[0]),
"average" => getAverage($array[0]),
"percentage" => getPercentage($array[0]),
"color" = getColor($array[0]));
我正在尝试 return 数组中的最高百分比值以及名称、平均值、百分比、颜色等所有其他信息。
foreach ($array as $value) {
$name = getName($value);
$average = getAverage($value);
$percentage = getPercentage($value);
$color = getColor($value);
return $percentage;
}
我如何实施解决方案以找到所需的值(最高百分比)和 return 如果是数组。我在想排序可能是一种方式,但我仍然不清楚我应该怎么做。
试试这个
$percentage1=0;
$datas=array();
foreach ($array as $value) {
$name = getName($value);
$average = getAverage($value);
$percentage = getPercentage($value);
$color = getColor($value);
if($percentage>$percentage1)
{
$percentage1=$percentage;
$datas['name']=$name;
$datas['average']=$average;
$datas['percentage']=$percentage;
$datas['color']=$color;
}
return $datas;
}
虽然你问题中的代码没有任何意义,但如果数组中的所有值都是数字,你可以使用 php max 函数来获取最大值。
例如:
<?php $highest_value = max($array); ?>
如果你想使用内置的PHP排序,你可以使用usort()
。它使用自定义函数对数组进行排序。
usort($array, function($a, $b){
$percentage_a = getPercentage($a);
$percentage_b = getPercentage($b);
if($percentage_a === $percentage_b) {
return 0;
}
return ($percentage_a > $percentage_b)? -1 : 1;
});
return array(
"name" => getName($array[0]),
"average" => getAverage($array[0]),
"percentage" => getPercentage($array[0]),
"color" = getColor($array[0]));
然后,您的数组将按百分比最高的顺序排序。
如果你不需要匿名函数,你可以定义它并用它的名字调用 usort :
function getMaxPercentage($a, $b){
$percentage_a = getPercentage($a);
$percentage_b = getPercentage($b);
if($percentage_a === $percentage_b) {
return 0;
}
return ($percentage_a > $percentage_b)? -1 : 1;
}
usort($array, 'getMaxPercentage');
return return array(
"name" => getName($array[0]),
"average" => getAverage($array[0]),
"percentage" => getPercentage($array[0]),
"color" = getColor($array[0]));