Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyczytanie wartosci z tablicy z podanego indexu.
--Tobik--
post 27.06.2012, 09:52:39
Post #1





Goście







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
Go to the top of the page
+Quote Post
emkej
post 27.06.2012, 09:57:47
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 5
Dołączył: 18.06.2012

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


  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. }


--------------------
http://tropmy.net - narzędzie do badania usability stron WWW.
Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 10:06:12
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


  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. ?>
Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 10:19:12
Post #4





Goście







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.  




Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 10:22:25
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


$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
Go to the top of the page
+Quote Post
Evinek
post 27.06.2012, 10:27:19
Post #6





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


$id = explode(',', $num);
Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 10:36:45
Post #7





Goście







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?
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 10:38:54
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Red Hat
post 27.06.2012, 10:50:06
Post #9





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

Ostrzeżenie: (10%)
X----


nospor zawsze wypowie się raz, i sprawa rozwiązana

Widać że panuje nad tym forum ^^


--------------------
Tak dużo problemów, Tak mało amunicji...
Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 10:56:48
Post #10





Goście







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. }
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 11:01:41
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 11:10:15
Post #12





Goście







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)
Go to the top of the page
+Quote Post
Evinek
post 27.06.2012, 11:17:46
Post #13





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


Wielkość liter ma znaczenie w tej funkcji (sprawdzałem).
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 11:21:32
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 11:25:14
Post #15





Goście







Tyle ze, podaje w $kraj wielkosci liter tak jak mam w tablicy i wciąz funkcja zwraca liczbę 0.
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 11:30:52
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




0 to poprawny wynik array_search. To poprostu index 0 - indeksy numorewane są od 0.
Gorzej jakbyś dostawał FALSE.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 11:33:54
Post #17





Goście







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
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 11:35:44
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
--Tobik--
post 27.06.2012, 11:44:01
Post #19





Goście







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.
Go to the top of the page
+Quote Post
nospor
post 27.06.2012, 11:47:07
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 8.07.2025 - 20:03