как сделать цикл может зависеть от значений в массиве

как сделать цикл может зависеть от значений в массиве

20.11.2019 04:14:59 Просмотров 37 Источник

Я новичок, у меня есть значения массива, как это :

$array = [0.25, 0.1667, 0.1667, 0.1667, 0.125, 0.125] ;

Я хочу сделать зависимость, как это на цикле:

$array = [
    0 => 0.25, 
    1 => 0.25 + 0.1667, 
    2 => 0.25 + 0.1667 + 0.1667, 
    3 => 0.25 + 0.1667 + 0.1667 + 0.1667, 
    4 => 0.25 + 0.1667 + 0.1667 + 0.1667 + 0.125, 
    5 => 0.25 + 0.1667 + 0.1667 + 0.1667 + 0.125 + 0.125
];

тогда результатом цикла и массивов может быть :

$array = [0.25, 0.416667, 0.58333, 0.75, 0.875, 1];

пожалуйста, помогите мне, как сделать цикл (for, while и т. д... ) и изменить на массив, спасибо за помощь!

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/58955244/how-make-loop-can-addiction-by-values-in-array#comment104167045_58955244
Пожалуйста, прочитайте, Как спросить . Мы ожидаем, что вы покажете здесь некоторые фактические первоначальные усилия-покажите что-то, что вы пробовали, и объясните, в чем именно заключалась проблема. Пожалуйста, не приходите сюда, чтобы получить абсолютные основы, объясненные вам ("как сделать цикл (for, while и т. д..."), вот для чего нужны учебники и книги для начинающих.
https://stackoverflow.com/questions/58955244/how-make-loop-can-addiction-by-values-in-array#comment104167275_58955244
Также исправьте орфографию и грамматику в названии ("как сделать цикл может быть по значениям в массиве"); это не английский язык.

Ответы - как сделать цикл может зависеть от значений в массиве / how make loop can addiction by values in array

Ramin Rezazadeh

20.11.2019 04:21:17

$array = [0.25, 0.1667, 0.1667, 0.1667, 0.125, 0.125] ;
$output = [];
$temp = 0;
foreach($array as $key=>$val) {
  $output[$key] =  $val + $temp;
  $temp = $output[$key];
}
https://stackoverflow.com/questions/58955244/how-make-loop-can-addiction-by-values-in-array/58955379#comment104166487_58955379
спасибо Рамин-Резазаде. это работает.
Shringiraj Dewangan

20.11.2019 04:22:39

попробовать это :

$array = [0.25, 0.1667, 0.1667, 0.1667, 0.125, 0.125];
$temp = 0;
foreach ($array as $key => $val) {
    $temp += $val;
    $array[$key] = $temp;
}
print_r($array);
https://stackoverflow.com/questions/58955244/how-make-loop-can-addiction-by-values-in-array/58955406#comment104166641_58955406
спасибо шрингирадж-деванган... ГБУ
The fourth bird

20.11.2019 07:44:00

Одним из вариантов является использование array_reduce и добавление для каждой итерации текущего к последнему значению.

$array = [0.25, 0.1667, 0.1667, 0.1667, 0.125, 0.125] ;

$res = array_reduce($array, function($carry, $item) {
    $carry[] = $item + end($carry);
    return $carry;
}, []);

print_r($res);

Выход

Array
(
    [0] => 0.25
    [1] => 0.4167
    [2] => 0.5834
    [3] => 0.7501
    [4] => 0.8751
    [5] => 1.0001
)

PHP демо

Закрыть X