![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam..
Posiadam dynamicznie generowane tablice, $dane[0], $dane[1], $dane[2] itd. Ilośc tablic to od 2 do max 5, średnia ilość kluczy w tych tablicach to 10-50 kluczy. Potrzebuje zsynchronizować klucze w tych tablicach. tzn jeżeli w jednej tabeli występuje dany klucz to potrzebuje, żeby dodać go do pozostałych, które go nie posiadają, ale żeby wartość była pusta lub jakiś inny wybrany znak. Znalazłem w manualu funkcje array_diff, jednak nie mam pomysłu jak optymalnie to wykorzystać. Przykładowe tablice:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Masz klucze numeryczne - zapomnij o array_merge. Przy array_merge indeksy numeryczne zostają przeindeksowane :/ Zobacz sobie przykład 2 w manualu tej funkcji. Jeśli to klucze asocjacyjne - wal array_merge bez problemu, bo to będzie o wiele lepsze.
EDIT: Przy czym w przypadku array_merge, jeśli masz jedynie klucze asocjacyjne, możesz zapomnieć o diffie. Wystarczy, że tablicę bazową dołączysz jako ostatnią. array_merge ma taką fajną właściwość, że w takim wypadku nadpisze wartość. Innymi słowy Twój algorytm dla array_merge wyglądałby tak: 1. Połącz wszystkie tablice inne niż wybrana 2. Ustaw wszystkim kluczom wybraną wartość. 3. Podłącz do tak otrzymanej - wybraną tablicę, Możesz także jak proponujesz... Jedna tablica z wszystkim kluczami (tylko uważać na te klucze numeryczne!) i od razu ją jako wzorzec wyzerować. Potem tylko ją łączyć z kolejnymi. Jak widać metod jest wiele (IMG:style_emoticons/default/smile.gif) To jest bowiem optymalizacja tego co podałem w poście tym.
Powód edycji: [thek]: Małe dodatki ;)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 04:24 |