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

在具有 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


幕布斯7119047
浏览 179回答 2
2回答

慕盖茨4494581

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

蝴蝶不菲

有一些逻辑:$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 arrayfor ($i=0; $i < $lengthOfArray; $i++) {&nbsp;&nbsp; if($tempMaxValue<$array[$i]){&nbsp; &nbsp; &nbsp;$tempMaxValue= $array[$i];&nbsp; }&nbsp; // If we passed 10 results:&nbsp; if($i%$groupBy==9){&nbsp; &nbsp; &nbsp;$maxValues[] = $tempMaxValue; //Hold the Max&nbsp; &nbsp; &nbsp;$tempMaxValue = -1;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//Reset the temp value&nbsp; }}$maxValues将包含所有结果。
打开App,查看更多内容
随时随地看视频慕课网APP