Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablica podzielona na zbiory kolejnych liczb
Forum PHP.pl > Forum > Przedszkole
miccom
Cześć smile.gif

Mam tablicę, a w niej numerki: np. (1,2,3,4,6,7,8,12,14).

Jak mogę podzielić tablicę na zbiory kolejnych liczb?

Dla powyższego przykładu wynik miałby [1,2,3,4], [6,7,8], [12],[14]

Kompletnie nie wiem jak się do tego zabrać smile.gif
Pomożecie? smile.gif
viking
A według jakiego klucza ten podział? Dlaczego akurat te 4 zbiory?
miccom
Klucz wg. kolejności liczb, ale aby to były zbiory kolejnych po sobie liczb.
Jeśli już np. po n-tej liczbie nie ma n-tej + 1 to tworzymy nową tablicę którą rozpoczyna następna liczba po n-tej i dalej sprawdzamy czy jest nta2+1

w moim przykładzie:
tworzę tablicę, która zawiera liczby 1,2,3,4 nie ma w głównej tablicy liczby 5 więc zamykam pierwszą tablicę i szukam w zbiorze następnej liczby po 4 ( w moim przykładzie to liczba 6 ) i ta liczba otwiera drugą tablicę z numerami 6,7,8, liczby 9 już nie ma w głównej tablicy więc zamykam tablicę drugą, wyszukuję kolejną liczbę z tablicy ( w moim przykładzie to liczba 12 ) i tworzę tablicę trzecią, nie ma liczby 13 w tablicy głównej więc zamykam tablicę trzecią, i szukam następnej liczby, znajduję liczbę 14 więc otwieram tablicę czwartą, nie ma liczby 15 w głównej tablicy więc zamykam tablicę czwartą- kończą się liczby w tablicy głównej.

uff;)
emillo91
A to ma być skończony zbiór tablic czy pętla generująca tablice bez końca? Pytam bo da się to zrobić w pętli, ale żeby wiedzieć którą pętlę wybrać to musisz podać jakim celem jest rozdzielanie liczb na tablice. Jest taka funkcja nazywająca się array_chunk. Do tego dokładasz pętlę i dzielisz tablicę na fragmenty.
Pyton_000
Zwykła pętla foreach coś na zasadzie (pseudokod):

Kod
licznik = 0
tablica = []
foreach dane as klucz => wartosc:
  tablica[licznik][] = element
  if not isset dane[klucz+1]
    licznik+1
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.