![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam kilkaset tablic. Ich struktura jest taka, że na samym dole (liście) zawsze znajduje się tablica z 2 elementami. Problem dotyczy wyższych elementów które są zmienne np. $ - oznacza liść (tablica 2 element-owa o wartościach float) A = ($, $, $, $) B = (($, $, $), ($, $)) C = (($, $), (($, $, $), ($, $, $))) Teraz chciałbym je "znormalizować" do postaci gdzie: A = (($, $, $, $)) [istniał tylko 1 element więc wrzucamy go do nowej tablicy jako pierwszy] B = (($, $, $), ($, $)) [takie samo - nie ruszamy są dobrze ułożone] C = (($, $), ($, $, $), ($, $, $)) [tutaj 2 element tablicy posiadał kolejne elementy w sobie, teraz wszystko jest "spłaszczone"] Istnieje jakiś szybki sposób dzięki któremu osiągnę ten efekt? Zagnieżdżeń może być więcej. Być może rozwiązanie jest proste tylko mózg mi się przegrzewa ![]() ![]() -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 4 Dołączył: 14.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
może i rozwiązanie jest proste, ale sposób w jaki to wytłumaczyłeś chyba nie... bo nie czaję o co tak na prawdę biega?
![]() Jeśli A to: $zmienna=array(1,2,3,4); To chcesz zrobić z tego: $nowa_zmienna=array($zmienna); ![]() ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie
A = array(array(1,2),array(1,2),array(1,2)); Każdy $ == array(float,float) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 4 Dołączył: 14.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Nie A = array(array(1,2),array(1,2),array(1,2)); Każdy $ == array(float,float) ok a co dalej, w sensie co chcesz z tym floatem zrobic?? chcesz z A utworzyć: $zmienna=array(1,2,1,2,1,2); gdzie 1,2 to wyodrębnione wartości z array(float,float)? Zaraz sam się pogubię w tym co piszę ; ) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
IN:
OUT:
To tylko 1 przypadek. Głównie chodzi o wyłapanie grupy "liści" (array(5.2, 5.2), array(5.2, 5.2)) i wrzucenie tych nowych grup do tablicy. Z tym, że czasami mogą występować przypadki gdzie np.
itp. Grupa liści może się składać zarówno z 2 jak i z 9999 elementów (n). Ten post edytował markuz 17.02.2015, 19:00:35 -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 4 Dołączył: 14.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
hmm czyli w skrócie para floatów zbyt głęboko zagnieżdzona powinna zostać przepisana do poziomu zagnieżdżenia 1 jeśli dobrze rozumiem, a im bardziej łapię już o co chodzi tym bardziej widzę jak przytłaczający to może być problem. Przy operacjach na tak dużych tablicach (praktycznie niemal nieskończenie głębokich wynika z postu) może wyskoczyć problem z przetworzeniem tego... a w jaki sposób te tablice się generują? Może da się ten problem rozwiązać od zarodka, zanim skrypt zacznie zagnieżdżać tak głęboko?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nieskończona jest tylko ilość liści w 1 grupie - i nie jest nieskończona max. około 15-20k. Zagnieżdżenie maksymalne to 5. Od zarodka nic nie ruszę bo nie mam na to wpływu.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:38 |