Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odejmowanie elementów w tablicy
Forum PHP.pl > Forum > Przedszkole
Krismen
Witam. Mam taką tablicę:

  1. (
  2. [5] => 2
  3. [7] => 5
  4. [11] => 9
  5. [15] => 12
  6. [19] => 16
  7. [22] => 20
  8. [25] => 30
  9. [28] => 42
  10. )


Klucze nie idą kolejno. Potrzebuję odjąć drugi element od pierwszego, trzeci od drugiego itd. Próbuję tak

foreach($tab as $key => $val)
{
echo $val;
$current=current($tab);
$next=next($tab);
echo "roznica= ".($next-$current)."<br />";
}

i otrzymuję:

2 roznica = 4
5 roznica = 3
9 roznica = 4
12 roznica = 4
16 roznica = 10
20 roznica = 12
30 roznica = -42
42 roznica = 0

Do szczęsci brakuje mi pierwszej różnicy czyli 5-2. Nie wiem czemu?
nospor
Pewnie dlatego, ze po pierwszym odpaleniu foreach current wskazuje juz na nastepny element w kolejce
Krismen
Faktycznie teraz sprawdziłem, w pętali foreach current to nie pierwszy tylko drugi element. Co ciekawe w pętli for current jest pierwszy, tylko że do tej tablicy nie mogę użyć for. W taki razie jak by to można było zrobić?
nospor
FOR nie ingeruje w tablice, FOREACH tak, stad tez inne zachowanie...

Jak to poprawic? No przeciez to logincze.... $val to twoje current, a current to next. Nad czym tu myslec?
mar1aczi
foreach
  1. foreach($a as $k => $v) {
  2. echo current($a) - $v . "; ";
  3. next($a);
  4. }
Wyświetla się jednak nadmiarowo ostatni element :|

for
  1. $k = array_keys($a);
  2. for($i = 1; $i < count($a); $i++) {
  3. echo $a[$k[$i]] - $a[$k[$i-1]] . "<br/>";
  4. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.