我需要将数组结果分组为4个新数组。尝试将每个结果分组到适当的数组中,例如:最高25%中最高25%中最低25%低25%
这行不通,但这就是为什么我要问如何解决这个问题。
$top = "70000";
$mid = "40000";
$low = "25000";
$resultsarray = array(100000,75000,55000,50000,20000,5000);
echo "Top 25%:";
foreach ($resultsarray as $value) {
if($value >= $top){
echo $value;
}
}
echo "Mid Top 25%:";
foreach ($resultsarray as $value) {
if($value >= $mid && $value < $top){
echo $value;
}
}
等等...
array_filter
将根据您提供的条件为您提供较小的阵列。
$top = "70000";
$mid = "40000";
$low = "25000";
$resultsArray = array(100000,75000,55000,50000,20000,5000);
$top25 = array_filter($resultsArray, function ($value) use ($top) {
return $value >= $top;
});
$midTop25 = array_filter($resultsArray, function ($value) use ($top, $mid) {
return $value >= $mid && $value < $top;
});
$midLow25 = array_filter($resultsArray, function ($value) use ($mid, $low) {
return $value > $low && $value < $mid;
});
$low25 = array_filter($resultsArray, function ($value) use ($low) {
return $value <= $low;
});
function printNums(array $arr)
{
return array_reduce($arr, function ($carry, $number) {
return $carry .= $number .= " ";
});
}
printf("Top 25%%: %s\n", printNums($top25));
printf("Mid-Top 25%%: %s\n", printNums($midTop25));
printf("Mid-Low 25%%: %s\n", printNums($midLow25));
printf("Low 25%%: %s\n", printNums($low25));
在https://3v4l.org/mGMOV上查看实际运行情况
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句