Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]dzielenie tablic z nieregularnym indeksem
areg
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.12.2010

Ostrzeżenie: (0%)
-----


Witam,

prosze o pomoc w następującej sprawie:

Mam tablice w której klucz to liczby, ale nie zaczynające się od zera, ale np. od 17, oraz z możliwymi "dziurami", czyli np. 17, 18, 19, 22, 23, 24, 27, itd
Utrudnienie polega na tym, że elementów w tablicy jest ok 20 tysięcy. Potrzebuje do dalszej obróbki podzielić tablicę na mniejsze kawałki np po 100 elementów. Próbowałem do tego użyć następującej konstrukcji:

CODE
$klucz=0;
while (!empty($tablica)) {
$tablica_tmp = array_slice($tablica, $klucz, 100, true); //tu pobieram pierwszych 100 elementów nie ruszając kluczy i mimo ze klucz jest ustawiony na 0 jako pierwszy pojawia się element o indeksie 17 co sugerowaloby że funkcja skacze do pierwszej pozycji a nie do pozycji z indeksem 0
$koniec=end($tablica_tmp); // przesuwam wskaźnik na koniec małej odciętej tablicy
$klucz=key($tablica_tmp)+1; // podstawiam do zmiennej tablice zmniejszoną o pierwszych 100 elementów( w kązdym razie chciałbym) zachowując oryginalne klucze
echo 'Dla sprawdzenia klucz to: '.$klucz.'<br>'; // tu przekonuje sie ze ostatni zwiekszony o 1 jest poprawny
$tablica = array_slice($tablica, $klucz, null, true); // a tu niestety do zmiennej podstawia sie juz fikcja

print_r($tablica_tmp);
.....}



Uzyskany efekt niestety daleki jest od satysfakcjonującego, bo o ile w pierwszym użyciu funkcji array_slice parametrem true można wpłynąć na pozostawienie oryginalnych kluczy, to w drugim nie bardzo wiem jak poprawnie i czy w ogole można, przekazać ten parametr. Po wstawieniu 'null' w kolejnym kroku tablica 100 elementowa ma pierwszy element oddalony o nieregularną wartość rzędu 3 tysięcy od ostatniego elementu z poprzedniego kroku.

Inne podobne funkcje PHP na siłe renumerują index, a tego nie chce.

Wdzięczny będę za wszelkie sugestie.

pozdrawiam

Arek
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




array_chunk
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:08