![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam dwuwymiarową tablicę, która będzie przechowywała liczby. Przy jej tworzeniu tablica nie będzie miała żadnych elementów oraz nie znam rozmiarów tej tablicy. Tablica będzie po prostu uzupełniania w trakcie działania programu. I teraz chodzi mi o to, żeby każdy element tej tablicy miał wartość początkową 1. Np. gdy w trakcie programu wpiszę do elementu tablicy:
to ten element będzie miała wartość nie 1, a 2. Czy da się jakoś to zrobić? -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Jeżeli nie znasz rozmiary tablicy to nie ma innej opcji niż po prostu sprawdzanie czy taki klucz istnieje isset i jeżeli to nie to uzupełnić jego wartość liczbą 1.
Gdybyś znał rozmiar tablic mógłbyś bawić się funkcją array_fill -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Jeżeli nie znasz rozmiary tablicy to nie ma innej opcji niż po prostu sprawdzanie czy taki klucz istnieje isset i jeżeli to nie to uzupełnić jego wartość liczbą 1. Gdybyś znał rozmiar tablic mógłbyś bawić się funkcją array_fill Ale można też napisać sobie prostą klasę, która obsłuży zapis/odczyt do takiej tablicy. Wtedy nie znając jej rozmiaru można mimo wszystko mieć domyślnie wartość 1 w każdej komórce. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zbyt mały pierd aby angażować całą klasę.
Ten post edytował wookieb 15.08.2010, 20:51:17 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Tak... Da się. Nie jest to trudne. Musisz tylko pamiętać o jednym... Wywołanie $tablica[6][4] utworzy takie pole, ale tylko je. Nie utworzy natomiast tych przed nim będących i musisz je uzupełnić ręcznie. Jeśli te pola tylko inkrementujesz to dam Ci prostą funkcję, która to zrobi
![]() Zauważ jak wygląda wyprintowana tablica... Musisz uzupełnić tylko luki zanim przejdziesz do następnych etapów gdzie owa tablica jest potrzebna. Powiem tylko, że napisanie funkcji, która to zrobi jest bardzo proste i dla porównania jeśli pierwsza wpisująca ma 4 linijki "pracujące", to wypełniająca ma w moim wykonaniu 14, w tym dwie pierwsze to inicjalizacja zmiennych do wartości 0, bo muszę wykryć faktyczny rozmiar tablicy wynikowej i za to odpowiada kolejne 6 linijek. Pozostałe to wykrywanie czy pole w zadanym indeksie X,Y jest już zainicjowane czymś, czy nie ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
@THEK zrób jeszcze wersję z array_fillem to osobiście przypnę Ci etykiętkę nabijacza postów kopiującego tok myślenia poprzedników.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Temat miałem otwarty od przeszło godziny, ale miałem kilka spraw i musiałem odejść od kompa na jakąś chwilę zanim dałem "Wyślij"
![]() ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Drogi theku, nie obchodzi mnie czy broniłeś krzyża czy też polowałeś na surykatki w Afryce. Tak samo nie obchodzi mnie reszta twojego wywodu, który był kompletnie niepotrzebny.
A dlaczego? Ponieważ mój post nie jest zachętą do nap...... w klawiaturę i kręceniu się w kółko jak motocyklista po grzybkach, lecz próbą zadania pytania "po co powtarzasz to co inni napisali?". Ja poruszam prostą kwestię w sposób jasny a ty odpowiedziałeś na temat tym samym co ja tylko opakowanym w inny sposób = nabijanie postów. Jest to tak niesamowicie irytujące szczególnie w postaci osoby takiej "rangi" jak twoja. Dodatkowo twój wywód podkreślił, że NADAL nie przeczytałeś treści poprzednich postów a w takiej sytuacji zachęcam Cię do zerwania paru nocek i podsumowania wszystkich tematów twoim komentarzem bo po co ktokolwiek ma pisać skoro ty musisz dać upust swojemu umysłowemu "kopiuj/wklej". Na koniec dodam, że nie pierwszy raz łapie Cię na tego typu sytuacji. Ten post edytował wookieb 15.08.2010, 22:28:15 -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Zbyt mały pierd aby angażować całą klasę. Czy za mały? Nie wiem. Ja osobiście napisałbym tę klasę, choćby po to żeby w przyszłości zachoać zasadę DRY. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:14 |