Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] tablice, sortowanie
-Devilek-
post 4.04.2006, 16:18:21
Post #1





Goście







Witam,
Ostatnio cwicze troche z tablicami w php i natknalem sie na taki problem. Mam tablice w tablicy:
glowna tablica do $test

  1. Array
  2. (
  3.    [0] => Array
  4.        (
  5.            [numer] => 0
  6.            [nazwa] => cccc
  7.            [rozmiar] => 0
  8.        )
  9.  
  10.    [1] => Array
  11.        (
  12.            [numer] => 1
  13.            [nazwa] => aaaa
  14.            [rozmiar] => 333
  15.        )
  16.  
  17. )


Poddaje to sortowaniu po nazwie i otrzymuje:

  1. Array
  2. (
  3.    [1] => Array
  4.        (
  5.            [numer] => 1
  6.            [nazwa] => aaaa
  7.            [rozmiar] => 333
  8.        )
  9.  
  10.    [0] => Array
  11.        (
  12.            [numer] => 0
  13.            [nazwa] => cccc
  14.            [rozmiar] => 0
  15.        )
  16.  
  17. )


Wszystko fajnie, tylko nie wiem jak sie teraz odwolac do danych aby pobierac. Gdy probuje tak:

  1. <?php
  2.  
  3. for($i=0;$i<$licz;$i++)
  4. {
  5. echo $test[$i]['nazwa'].' '.$test[$i]['rozmiar'].'<br>';
  6. }
  7.  
  8. ?>


To wyswietla w starej kolejnosci, poniewaz odwouje sie do [0], [1], a nie kolejnosci w jakiej pojawia sie w tablicy. Nie wiem jak odwolywac sie pierwszego, drugiego, trzeciego... elementu tablicy $test
Go to the top of the page
+Quote Post
Fipaj
post 4.04.2006, 18:39:29
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


poczytaj o strukturze foreach" title="Zobacz w manualu php" target="_manual, znacznie upraszcza operowanie tablicami. to jest zdaje się rozwiązanie twojego problemu.


--------------------
Go to the top of the page
+Quote Post
lookaszpl
post 4.04.2006, 19:24:17
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.04.2006

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


  1. <?php
  2.  
  3. $klucze=array_keys($tablica);
  4. for ($i=0;$i<count($klucze);$i++)
  5. {
  6. //tutaj odwolanie juz do swojego kodu
  7. }
  8.  
  9. ?>
Go to the top of the page
+Quote Post
NuLL
post 4.04.2006, 20:32:02
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


A po kiego grzyba pisac takie cos questionmark.gif

Po pierwsze zaden porzadny programista nie wpycha count-a do for-a bo wykonuje sie on za kazda iteracja petli pozatym nie wiem po co szpanowac f-ja array_keys ktora jest to zupelnie zbedna questionmark.gif
Nie lepiej tak ?
  1. <?php
  2.  
  3. foreach($tablica as $element)
  4. {
  5. //to rob cos tam
  6. }
  7.  
  8. ?>


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
dr_bonzo
post 4.04.2006, 20:38:09
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


array_values( $test ) -- dostaniesz przeindeksowana tablice, od zera w posortowanej kolejnosci


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
lookaszpl
post 5.04.2006, 10:02:52
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.04.2006

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


@Null
Kazda droga jest dobra, jezeli prowadzi do celu. Jezeli mam czegos nie zrobic, albo zrobic troche inna droga to wole jednak ta druga opcje;). Masz racje z tym countem. Ale mozna zrobic tak i bedzie juz dobrze:

  1. <?php
  2.  
  3. $klucze=array_keys($tablica);
  4. $ilosc=count($klucze);
  5. for ($i=0;$i<$ilosc;$i++)
  6. {
  7. //tutaj odwolanie juz do swojego kodu
  8. }
  9.  
  10. ?>


Pozdrawiam
Go to the top of the page
+Quote Post
TomASS
post 5.04.2006, 15:11:58
Post #7





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
Kazda droga jest dobra, jezeli prowadzi do celu. Jezeli mam czegos nie zrobic, albo zrobic troche inna droga to wole jednak ta druga opcje;).

Tak jest smile.gif Ale najlepiej jest to zrobić w miarę optymalnie smile.gif

Cytat
Ale mozna zrobic tak i bedzie juz dobrze:
  1.  <?php
  2.  
  3. $klucze=array_keys($tablica);
  4. $ilosc=count($klucze);
  5. for ($i=0;$i<$ilosc;$i++)
  6. {
  7. //tutaj odwolanie juz do swojego kodu
  8. }
  9.  
  10. ?> 

A jak zmienisz w pętli zawartość tablicy $klucze (np. dodasz element tongue.gif )

Ten post edytował TomASS 5.04.2006, 15:13:58


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 05:36