2015-09-29 66 views
0

我想返回最高的百分比值以及像数组中的名称,平均值,百分比,颜色等所有其他信息。寻找循环中最高的值

foreach ($array as $value) { 
    $name = getName($value); 
    $average = getAverage($value); 
    $percentage = getPercentage($value); 
    $color = getColor($value); 

    return $percentage; 
} 

我如何实施解决方案找到所需的值(最高百分比),并将其返回如果数组。我想排序可以是一种方式,但我仍然不清楚应该怎么做。

+1

可以提供数组数据的例子吗? – RamRaider

+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; 
} 
0

虽然在你的问题的代码没有任何意义,你可以使用PHP max函数来获得最高的价值,如果在阵列中的所有值都是数字。

例如:

<?php $highest_value = max($array); ?> 
0

如果你想使用BUIT的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]));