Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeszukiwanie tablicy
Forum PHP.pl > Forum > PHP
proxy
Jak znaleźć wartość superwartosc w tej tablicy?

  1. $zmienna = array
  2. (
  3. 1=>array
  4. (
  5. 1=>array('klucz1'=>'wartosc1','klucz2'=>'wartosc2'),
  6. 2=>array('klucz1'=>'wartosc1','klucz2'=>'wartosc2')
  7. ),
  8. 2=>array
  9. (
  10. 1=>array('klucz1'=>'wartosc1','klucz2'=>'superwartosc'),
  11. 2=>array('klucz1'=>'wartosc1','klucz2'=>'wartosc2')
  12. )
  13.  
  14. .
  15. .
  16. .
  17. .
  18. 990=>array ( ... )
  19. );


Muszę po prostu wiedzieć, że taka wartość istnieje w tablicy. Próbowałem in_array, array_search i coś nie bardzo.
Pojedyncze przeszukiwanie tablicy odpada bo w tablicy będzie około 1000 kluczy (tych głównych).

Jakieś pomysły?
lukaskolista
pierwsze 2 poziomy tablicy przelec petlami, a 3 jakas funkcja, np in_array()
proxy
Będzie około 1000 takich podtablic:

  1. 1=>array
  2. (
  3. 1=>array('klucz1'=>'wartosc1','klucz2'=>'wartosc2'),
  4. 2=>array('klucz1'=>'wartosc1','klucz2'=>'wartosc2')
  5. ),


a to wszystko w jednej tablicy...
Quadina
Tak czy inaczej musisz przez te pętle po prostu przejść. Proponuje coś takiego:

  1. function znajdz($tablica,$coszukam){
  2. foreach($tablica as $a=>$v1){
  3. foreach($v1 as $b=>$v2){
  4. foreach($v2 as $c=>$v3){
  5. if($v3==$coszukam)return array($a,$b,$c);
  6. }
  7. }
  8. }
  9. return null;
  10. }

Funkcja zwroci ci tablice indeksow kolejnych zaglebien albo null jak nie znajdzie.
proxy
Pomyliłem się...

tablica ma wyglądać tak:

  1. (
  2. [1] => Array
  3. (
  4. [klucz1] => wartosc1
  5. [klucz2] => wartosc2
  6. [klucz3] => wartosc3
  7. [klucz4] => wartosc4
  8. )
  9. [2] => Array
  10. (
  11. [klucz1] => wartosc1
  12. [klucz2] => wartosc2
  13. [klucz3] => superwartosc
  14. [klucz4] => wartosc4
  15. )
  16. )


Mógłbyś mi ułożyc funkcję pod to?

Próbuje tak:

  1. function znajdz($tablica,$coszukam){
  2. foreach($tablica as $a=>$v1){
  3. foreach($v1 as $b=>$v2){
  4. if($v2==$coszukam)return array($a,$b);
  5. }
  6. }
  7. return null;
  8. }


I nie bardzo...
Pawel_W
czytaj komentarze pod array_search, tam masz kilka funkcji do przeszukiwania tablic wielowymiarowych
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.