Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] tablice, sortowanie
Forum PHP.pl > Forum > Przedszkole
Devilek
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
Fipaj
poczytaj o strukturze foreach" title="Zobacz w manualu php" target="_manual, znacznie upraszcza operowanie tablicami. to jest zdaje się rozwiązanie twojego problemu.
lookaszpl
  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. ?>
NuLL
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. ?>
dr_bonzo
array_values( $test ) -- dostaniesz przeindeksowana tablice, od zera w posortowanej kolejnosci
lookaszpl
@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
TomASS
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 )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.