Jestem nowicjuszem, mam takie wartości tablicy:

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

Chcę uzależnić się od pętli:

$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
];

Wynikiem zapętlenia i tablic może być:

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

Proszę, pomóż mi, jak zrobić pętlę (for, while, itp ...) i zmienić na tablicę, dzięki za pomoc!

-1
Kenny Wks 20 listopad 2019, 16:14
Przeczytaj Jak zapytać. Spodziewamy się, że przedstawisz tutaj pewne początkowe wysiłki - pokaż coś, czego próbowałeś, i wyjaśnij, na czym dokładnie polegał problem. Proszę nie przychodź tutaj, aby wyjaśnić ci absolutne podstawy ("jak zrobić pętlę (for, while, itp..."), do tego służą samouczki i książki dla początkujących.
 – 
04FS
20 listopad 2019, 16:39
Popraw także pisownię i gramatykę w tytule ("jak make loop może uzależnić od wartości w tablicy"); to nie jest angielski.
 – 
U. Windl
20 listopad 2019, 16:45

3 odpowiedzi

$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];
}
1
Ramin Rezazadeh 20 listopad 2019, 16:21

Spróbuj tego :

$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);
0
Shringiraj Dewangan 20 listopad 2019, 16:22

Jedną z opcji jest użycie array_reduce i dodanie dla każdej iteracji prąd do ostatniej wartości.

$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);

Wynik

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

Demo PHP

0
The fourth bird 20 listopad 2019, 19:44