Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapisywanie danych do tablic
Sprouse
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.01.2010

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


Witam,
Mam taką tablicę:
  1. imie[1]=""; nazwisko[1]=""; adres[1]=""; ukryty[1]="";
  2. imie[2]=""; nazwisko[2]=""; adres[2]=""; ukryty[2]="";
  3. imie[3]=""; nazwisko[3]=""; adres[3]=""; ukryty[3]="";
  4. imie[4]=""; nazwisko[4]=""; adres[4]=""; ukryty[4]="";
  5. imie[5]=""; nazwisko[5]=""; adres[5]=""; ukryty[5]="";

W indeksie każdej zmiennej znajduje się liczba, która jest identyfikatorem.

Moje pytanie brzmi - w jaki sposób można zapisać do takiej tablicy dane zapisane w ten sposób - całość wygląda tak:
{"lista_kontaktow":[{"id":1,"imie":"andrzej","nazwisko":"kowalski","adres":"lipowa 27/2","ukryty":false},{"id":2,"imie":"michał","nazwisko":"zieliński","adres":"klonowa 11/7","ukryty":true}],"nazwa_kontaktow":null,"publiczna":true;}

Tekst zaznaczony na czerwono należy wykasować. W miejscu, gdzie mamy zielony tekst znajduje się docelowa lista kontaktów, w niej informacje są zapisywane w sposób jak podano wyżej, a poszczególne kontakty dzieli przecinek. Takich kontaktów może być 5, a może być i 300, więc prosiłbym nie sugerować się tym, że są tam tylko 2 kontakty.
W jaki sposób można to zrobić?

Z góry dziękuję za pomoc, pozdrawiam,
Sprouse

Ten post edytował Sprouse 20.07.2010, 22:45:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
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




A w 2-wymiarowej:
Byłoby
  1. $lista_kontaktow = array(
  2. [1] => array( 'imie' => '', 'nazwisko' => '', 'adres' => '', 'ukryty' => '' ),
  3. [2] => array( 'imie' => '', 'nazwisko' => '', 'adres' => '', 'ukryty' => '' ),
  4. [3] => array( 'imie' => '', 'nazwisko' => '', 'adres' => '', 'ukryty' => '' ),
  5. [4] => array( 'imie' => '', 'nazwisko' => '', 'adres' => '', 'ukryty' => '' ),
  6. [5] => array( 'imie' => '', 'nazwisko' => '', 'adres' => '', 'ukryty' => '' )
  7. );
  8. foreach($lista_kontaktow AS $wpis) {
  9. echo 'Imię: '.$wpis['imie'].', Nazwisko: '.$wpis['nazwisko'].', Adres: '.$wpis['adres'];
  10. }
Nadal uważasz, że Twoja struktura jest lepsza? (IMG:style_emoticons/default/winksmiley.jpg)
Ja mogę wywołać $lista_kontaktów[1], co zwróci mi tablicę danych usera z id=1, ale i $lista_kontaktów[3]['imie'], co zwróci mi imię usera o id=3 (IMG:style_emoticons/default/smile.gif) A wyświetlenie wszystkich masz wyżej, i zajmuje to 3 linijki -> 8-10

EDIT: A teraz sprawdź czy jakaś dana istnieje w Twoim układzie. Jak robię ja? if( array_key_exists('2', $lista_kontaktow) ) lub isset( $lista_kontaktow[2] ) a do konkretnego pola? isset($lista_kontaktow[2]['imie']). U Ciebie to drugie przejdzie też. Ale zrobisz to pierwsze? Czy zakończy się to sprawdzaniem
if( isset( $imie[2]) && isset( $nazwisko[2]) && isset( $adres[2]) && isset( $ukryty[2]))
?
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 13:43