PHP数组读取顺序

PHP数组读取顺序,php,arrays,Php,Arrays,在PHP中,我有这样一个数组: $BulkArray[$i] 此数组包含大量数字,例如1=>100、2=>300、3=>100等等。 现在我想在整个数字范围内,找出一个小于等于500的数字的最大序列。我想写下继任人数 例如,我有一个数组 1 => 100, 2 => 300, 3 => 100, 4 => 50, 5 => 50, 6 => 50, 7 => 50, 8 => 50, 9 => 500, 10 =>

在PHP中,我有这样一个数组:

$BulkArray[$i]

此数组包含大量数字,例如1=>100、2=>300、3=>100等等。 现在我想在整个数字范围内,找出一个小于等于500的数字的最大序列。我想写下继任人数

例如,我有一个数组

1 => 100, 2  => 300, 3  => 100, 
4  => 50, 5 => 50, 6  => 50, 7  => 50, 8  => 50, 
9  => 500, 10  => 200, 11  => 100
如你所见,数字1、2和3加在一起是500。所以这是第一次继承

2、3、4、5也是500加在一起。这个序列4比第一个序列3大

以此类推,然后你会得到最高的序列:3,4,5,6,7,8序列,6个数字是350,但低于500米,正如我们搜索的那样

现在,如何使用数组进行写入: $BulkArray[$i],最高继承率是6

因为6是整个阵列中500的最高序列

它用于对特定的carpart进行分类

或者你可以看到一些东西


用户的回答再次出现在这里,几乎没有改进:

<?php //lets  call your $BulkArray = $values;
 $values=array( 1 => 100, 2  => 300, 3  => 100, 
4  => 50, 5 => 50, 6  => 50, 7  => 50, 8  => 50, 
9  => 500, 10  => 200, 11  => 100 );
$sum=0; // to sum up until 500
$Vals500=array(); // array to store index with <= 500
$i=0; // index for new aaray that will store keys that made up <= 500
$key1=1; //value to iterate the array defined above

for($key=1; $key <= count($values); $key++){

$sum = $sum + $values[$key]; // get sum of values

if($sum <= 500){ $Vals500[$i][]=$key; } //append all key of sum ==500

    if($sum >= 500) { $i++;  $key=$key1++; $sum=0; } //check sum then reintialize
    //added bigger equal

}

echo count(max($Vals500)); // read out the biggest succession
?>

再次感谢FASM

如果只寻找最长的条纹,可能需要计算数组的所有排列,然后按最小的数字排序,然后开始相加,直到总和>=您的极限。你通过的次数就是你的答案。