我正在尝试返回最高百分比值以及阵列中的所有其他信息,如名称,平均值,百分比,颜色等。
foreach ($array as $value) {
$name = getName($value);
$average = getAverage($value);
$percentage = getPercentage($value);
$color = getColor($value);
return $percentage;
}
如何实现解决方案以找到所需的值(最高百分比)并返回它如果是数组。我认为排序可以是一种方式,但我仍然不清楚我该怎么做。
答案 0 :(得分:0)
试试这个
$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;
}
答案 1 :(得分:0)
虽然你问题中的代码没有任何意义,但如果数组中的所有值都是数字,你可以使用php max函数获得最高值。
例如:
<?php $highest_value = max($array); ?>
答案 2 :(得分:0)
如果您想使用buit-in 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]));