为了账号安全,请及时绑定邮箱和手机立即绑定

如何在前 10 个元素之间的 PHP 数组中找到最大值,然后从接下来的 10 个元素等等?

如何在前 10 个元素之间的 PHP 数组中找到最大值,然后从接下来的 10 个元素等等?

PHP
幕布斯7119047 2021-11-13 19:04:30
在具有 1000 个元素的 PHP 数组中。我想要的是在前 10 个元素之间找到“最大值”。然后需要从接下来的 10 个元素中找到最大值并继续处理直到到达数组的末尾。$array = [1,2,3,4,15,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,22,42,33,34,35,36,37,38,11,10]预期输出:15,10,42
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您可以通过多种方式实现这一目标。如果这是一个赋值,计数和循环将帮助您理解所需的逻辑,但您可以使用内置函数以一种相当紧凑的方式完成此操作:

  • array_map 将给定的函数应用于数组的每个元素并返回一个新数组。

  • array_chunk 拆分包含指定元素数量的数组。

  • max 返回数组的最大值。

把它们放在一起:

$array = [1,2,3,4,15,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,22,42,33,34,35,36,37,38,11,10];


$max = array_map('max', array_chunk($array, 10));


查看完整回答
反对 回复 2021-11-13
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

有一些逻辑:


$array = [1,2,3,4,15,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,22,42,33,34,35,36,37,38,11,10];


$lengthOfArray = count($array);

$maxValues = [];

$groupBy = 10;

$tempMaxValue = -1; // A small value that can be comparable



//Loop the array

for ($i=0; $i < $lengthOfArray; $i++) { 


  if($tempMaxValue<$array[$i]){

     $tempMaxValue= $array[$i];

  }



  // If we passed 10 results:

  if($i%$groupBy==9){

     $maxValues[] = $tempMaxValue; //Hold the Max

     $tempMaxValue = -1;           //Reset the temp value

  }

}

$maxValues将包含所有结果。


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信