Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyczytanie wartosci z tablicy z podanego indexu.
Forum PHP.pl > Forum > Przedszkole
-Tobik-
Mam tablicę przedstawiającą się tak:

  1. $table[1][kraj] = 'Polska';
  2. $table[2][kraj] = 'Niemcy';
  3. $table[3][kraj] = 'Rosja';
  4. $table[4][kraj] = 'Czechy';


Pozniej mam tablicę
  1. $id = array(1,3);


i teraz jak pobrac nazwy krajów, tablic $tablica[1] i $tablica[3] (numerow z tablicy $id, nie wiem jak sformułowac te pytanie).

z gory dziękuję. Bawie sie juz z tym od jakis 3 h i nie ogarniam tego za nic w swiecie wink.gif
emkej
  1. $table[1][kraj] = 'Polska';
  2. $table[2][kraj] = 'Niemcy';
  3. $table[3][kraj] = 'Rosja';
  4. $table[4][kraj] = 'Czechy';
  5.  
  6. $id = array(1,3);
  7.  
  8. foreach($id as $v) {
  9. echo $table[$v][kraj];
  10. }
Szymciosek
  1. <?php
  2.  
  3. $tab = array (1 => 'Polska', 2 => 'Niemcy', 3 => 'Rosja', 4 => 'Czechy');
  4. $id = array (1, 3);
  5.  
  6. for ($i = 0; $i < count($id); $i++)
  7. {
  8. echo $tab[$id[$i]];
  9. }
  10.  
  11. ?>
-Tobik-
Okej, oba kody działają za co dziękuję, tylko teraz kolejny problemik, jezeli juz damy tak to nie działa, a tak to wlasnie musze wykozystac:

  1.  
  2. $num = '1,3';
  3.  
  4. $table[1][kraj] = 'Polska';
  5. $table[2][kraj] = 'Niemcy';
  6. $table[3][kraj] = 'Rosja';
  7. $table[4][kraj] = 'Czechy';
  8.  
  9. $id = array($num);
  10.  
  11. foreach($id as $v) {
  12. echo $table[$v][kraj];
  13. }
  14.  


jezeli zrobimy tak jak wczesniej tablice poprzez print_r zwraca w postaci

  1.  
  2. (
  3. [0] => 1
  4. [1] => 3
  5. )
  6.  


A jezeli zrobimy tak jak napisalem powyzej zwraca:

  1.  
  2. [0] => 1,3
  3. )
  4.  




Szymciosek
$num teraz u Ciebie jest stringiem, więc możesz wpisywać nawet 1,2,3,5,6,7,4,4,56,34,4,6,7 a dalej Ci wyświetli
[0] => 1,2,3,5,6,7,4,4,56,34,4,6,7
Evinek
$id = explode(',', $num);
-Tobik-
Szymciosek to akurat zakumałem, az tak zielony nie jestem ;P

Evinkowi dziękuję, explode zadzialalo wink.gif

Adminow proszę o danie podziękowan panom: Evinek i emkej

Przy okazji jeszcze jedno pytanie. Jak uzyskac klucz jezeli mamy tylko kraj np. Polska?
nospor
Cytat
Przy okazji jeszcze jedno pytanie. Jak uzyskac klucz jezeli mamy tylko kraj np. Polska?
Zacznij może wkoncu korzystać z manuala... Ppo to go wymyślono by na forum banalnych pytań nie zadawać
http://www.php.net/manual/en/function.array-search.php
Red Hat
nospor zawsze wypowie się raz, i sprawa rozwiązana

Widać że panuje nad tym forum ^^
-Tobik-
Sęk w tym, ze mi cos to nie działa. Podaje funkcję jaką napisalem:

  1. function ZwrocKlucz($kraj){
  2. $kraje = unserialize(file_get_contents("nowy/pliki/db/tablica.txt"));
  3. $key = array_search($kraj, $kraje);
  4. return $key;
  5. }
nospor
Cięzko sprawdzić co dane zawierają?
  1. function ZwrocKlucz($kraj){
  2. $kraje = unserialize(file_get_contents("nowy/pliki/db/tablica.txt"));
  3. var_dump($kraj);
  4. var_dump($kraje);
  5. $key = array_search($kraj, $kraje);
  6. var_dump($key);
  7. return $key;
  8. }

I wszystko jasne
-Tobik-
Wciąz nie działa... a przez echo zwraca taki oto ciąg:

  1. string(2) "polska"
  2. array(5) {
  3. [1]=>
  4. array(1) {
  5. ["kraj"]=>
  6. string(7) "Polska"
  7. }
  8. [2]=>
  9. array(1) {
  10. ["kraj"]=>
  11. string(8) "Niemcy"
  12. }
  13. [3]=>
  14. array(1) {
  15. ["kraj"]=>
  16. string(4) "Rosja"
  17. }
  18. [4]=>
  19. array(1) {
  20. ["kraj"]=>
  21. string(2) "Czechy"
  22. }
  23. }
  24. bool(false)
Evinek
Wielkość liter ma znaczenie w tej funkcji (sprawdzałem).
nospor
Cytat
Wciąz nie działa...
No pewnie ze nie dziala.... przeciez to co ja ci podałem to debugowanie skryptu a nie jego naprawa.... Teraz jak wół widać co jest problemem i co wspomniał już Evinek
-Tobik-
Tyle ze, podaje w $kraj wielkosci liter tak jak mam w tablicy i wciąz funkcja zwraca liczbę 0.
nospor
0 to poprawny wynik array_search. To poprostu index 0 - indeksy numorewane są od 0.
Gorzej jakbyś dostawał FALSE.
-Tobik-
Tylko tyle, ze nie uzywam akurat tablicy z krajami. Podalem tylko taki przykład, a w mojej tablicy nie znajduje sie index 0. Po podaniu wartosci(podaje taką jaka jest w tabeli) powinien wyskoczyc numerek 8 cyfrowy ;p
nospor
To może łaskawie pokaż var_dumpy z danych na których faktycznie operujesz.... naprawdę mamy wróżyć z fusów?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
I powtarzam: jesli array_search zwrócił ci dokładnie 0 a nie FALSE, znaczy że znalazł wartosc pod indeksem 0 - tyle w temacie.
-Tobik-
Nomm okej, prosze bardzo, daje wszystko wink.gif

funkcja:
  1. function ZwrocNr($nick){
  2. $nicki = unserialize(file_get_contents("nowy/pliki/db/tablica.txt"));
  3. var_dump($nick);
  4. var_dump($nicki);
  5. $nr = array_search($nick, $nicki);
  6. var_dump($nr);
  7. return $nr;
  8. }


Komenda:
  1. $num = $bot->ZwrocNr($msg[1]);
  2. echo("$num");
  3. $nicki = unserialize(file_get_contents("nowy/pliki/db/tablica.txt")) ;
  4. $nicki[$num]['nick'] = $msg[2];
  5. $nicki = serialize($nicki);
  6. file_put_contents("nowy/pliki/db/tablica.txt", $nicki);


To co zwraca:
  1. string(7) "Tobik"
  2. array(5) {
  3. [xxx76388]=>
  4. array(1) {
  5. ["nick"]=>
  6. string(7) "Tobik"
  7. }
  8. [xxx5030]=>
  9. array(1) {
  10. ["nick"]=>
  11. string(8) "Kaka"
  12. }
  13. [xxx76499]=>
  14. array(1) {
  15. ["nick"]=>
  16. string(4) "Nixon"
  17. }
  18. [xxx18988]=>
  19. array(1) {
  20. ["nick"]=>
  21. string(2) "dd"
  22. }
  23. [0]=>
  24. array(1) {
  25. ["nick"]=>
  26. string(4) "kopa"
  27. }
  28. }
  29. bool(false)


Ostatni index 0 jest wynikiem dodania przez nasz owy problem jakim jest zwracanie zera.
nospor
No i czego piszesz ze zwraca 0 skoro widać jak wół ze zwraca FALSE..... nie mam już na ciebie sił.

To jest moje ostatnie zdanie w tym wątku:
array_search działa na tablicy jednowymiarowej. Ty zaś dla array search zapodajesz tablicę wielowymiarową. Dziękuję i dowidzenia. Było miło ale się skończyło wink.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.