Php 查找数组的前3个子集值

Php 查找数组的前3个子集值,php,arrays,Php,Arrays,我有一个数组,大约有1000个值,按日期顺序排列 我想找出这三个最大的数据子集。当然,最高和最低都很容易。我写得很快,所以我知道这不是最好的 这样做只是为了在一小部分数据上进行尝试。这个例子是用PHP编写的 <?php $values=array(array (1,1), array (2,2),array (3,553),array (4,455),array (5,655),array (6,774), array (7,878),array (8,2359),array (9,0),

我有一个数组,大约有1000个值,按日期顺序排列

我想找出这三个最大的数据子集。当然,最高和最低都很容易。我写得很快,所以我知道这不是最好的

这样做只是为了在一小部分数据上进行尝试。这个例子是用PHP编写的

<?php
$values=array(array (1,1),
array (2,2),array (3,553),array (4,455),array (5,655),array (6,774),
array (7,878),array (8,2359),array (9,0),array (10,56),array (11,756),
array (12,1234),array (13,6),array (14,4),array (15,23),array 
(16,763),array (17,235),array (18,72),array (19,465),array (20,7));
$highest=-1;
$runningtotal=0;
$lowest=1000000000000000;
for ($i=0;$i<18;$i++){
    $runningtotal=$values[$i][1]+$values[$i+1][1]+$values[$i+2][1];
    if ($highest<$runningtotal){$highest=$runningtotal;}
    if ($lowest>$runningtotal){$lowest=$runningtotal;}
}
echo $highest."<br>".$lowest;
?>

如何找到它的前3个子集值?


<?php
$values=array(
array (1,1),
array (2,2),
array (3,553),
array (4,455),
array (5,655),
array (6,774),
array (7,878),
array (8,2359),
array (9,0),
array (10,56),
array (11,756),
array (12,1234),
array (13,6),
array (14,4),
array (15,23),
array (16,763),
array (17,235),
array (18,72),
array (19,465),
array (20,7)
);
$highest=-1;
$runningtotal=0;
$lowest=1000000000000000;
$scores=array(array());

for ($i=0;$i<18;$i++){
    $runningtotal=$values[$i][1]+$values[$i+1][1]+$values[$i+2][1];
    if ($highest<$runningtotal){$highest=$runningtotal;}
    if ($lowest>$runningtotal){$lowest=$runningtotal;}
    $scores[$i][1]=$runningtotal;
    $scores[$i][2]=$values[$i][0];
    $scores[$i][3]=$values[$i+1][0];
    $scores[$i][4]=$values[$i+2][0];
}

rsort($scores);

echo $highest."<br>".$lowest."<br><br>";

for ($i=0;$i<18;$i++){
    echo $scores[$i][1].": ";
    echo $scores[$i][2].",";
    echo $scores[$i][3].",";
    echo $scores[$i][4]."<br>";
}

?>

1。按日期顺序,这是什么意思?你有一个满是日期的数组还是什么?2.但是,如果我看一下您的代码,您似乎想在
$values
中找到3个最大且总和最高的数组?!?如果您想找到由3个连续数组组成的主数组的最佳子集,那么您的代码似乎是正确的。到底是什么问题?多维数组日期是数组的第一部分,第二部分是该日期的值。该示例仅为测试目的而简化。@Rizier:是的,值数组是正确的。日期和值存储在$Values中,然后我希望3个连续数组元素的总和最高。显示最高点、次最高点等等。我已经补充了我认为是下面的答案。