У меня есть массив $ значения а также $ Tmax = 500:
$values = array (
array (0 => "MONTENVERS"),
array (0 => "HUVEAU"),
array (0 => "PHILOGUI"),
array (0 => "SEGARD CHRISTINE PATRIMOINE"),
array (0 => "STIQUEL"),
array (80 => "LINO"),
array (86 => "MAUBERT"),
array (94 => "GOSSELIN" ),
array (97 => "LIMPA" ),
array (98 => "CASSIERA" ),
array (120 => "LES VIGNES"),
array (123 => "WURTZ"),
array (124 => "ROUSSET-GAILLARD" ),
array (124 => "LEGRAND" ),
array (126 => "SANZ" ),
array (131 => "VIRONNEAU"),
array (133 => "SOCCORO"),
array (136 => "DESNOS"),
array (178 => "BARRIAC"),
array (233 => "MONTALBETTI"),
array (251 => "FOSSET"),
array (264 => "HERY"),
array (350 => "HUVEAU"),
array (352 => "GABSARIC"),
array (471 => "DSR"),
array (573 => "RTAIMATE"),
array (582 => "DEGERMANN"),
array (589 => "PIERVIE"),
array (601 => "BLC"),
array (617 => "SP PATRIMOINE"),
array (3467 => "RESIDENCE ORPEA DES RIVES D'OR"),
);
Я хочу 2 результата:
сумма ценностей и стоимости <= $ tmax (nb off итерация может быть между 3 и
N)
http://joberjob.com/script/index.php
сумма значений и значения> 5 $ tmax (nb вне итерации может быть максимум 3)
Чрезвычайно сложно понять, чего вы пытаетесь достичь — даже по изображениям. Но это то, что вы хотите?
$Tmax = 500;
$collection = [];
$sum = 0;
$index = 0;
foreach ($values as $value) {
if (!isset($collection[$index])) {
$collection[$index] = [];
}
if (key($value) + $sum < $Tmax) {
$collection[$index][] = $value;
$sum += key($value);
continue;
}
if (count($collection[$index]) > 2) {
$sum = 0;
$index ++;
}
if (!isset($collection[$index])) {
$collection[$index] = [];
}
if (key($value) + $sum < $Tmax) {
$collection[$index][] = $value;
$sum += key($value);
continue;
}
}
print_r($collection);
$values = array (
array (
0 => "MONTENVERS"),
array (
0 => "HUVEAU"),
array (
0 => "PHILOGUI"),
array (
0 => "SEGARD CHRISTINE PATRIMOINE"),
array (
0 => "STIQUEL"),
array (
80 => "LINO"),
array (
86 => "MAUBERT"),
array (
94 => "GOSSELIN"),
array (
352 => "GABSARIC"),
array (
471 => "DSR"),
array (
573 => "RTAIMATE")
);
//$Tmax = 500;
$collection = [];
$sum = 0;
$index = 0;
foreach ($values as $value) {
if (!isset($collection[$index])) {
$collection[$index] = [];
}
if (key($value) + $sum <= $Tmax) {
$collection[$index][] = $value;
$sum += key($value);
continue;
}if (count($collection[$index]) > 2) {
$sum = 0;
$index ++;
}if (!isset($collection[$index])) {
$collection[$index] = [];
}
if (key($value) + $sum > $Tmax) {
$collection[$index][] = $value;
$sum += key($value);
continue;
}
}
var_dump($collection);die;
?>