Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem ze zwróceniem wielu wartości w funkcji
kaktus283
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 26.03.2010

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


Witam, otóż gryzie mnie pytanie jak zrobić podczas wykonania jednej funkcji zwrócenie dwóch wyników.
Mam taki oto krótki kod:
  1. function getRate($adres)
  2. {
  3. $id = explode('#', $adres);
  4. @$source = file_get_contents($adres);
  5. $regexp_up = '/<span id=\"up'.$id[1].'\">(.*)<\/span>/';
  6. @preg_match_all($regexp_up, $source, $up);
  7. $regexp_down = '/<span id=\"down'.$id[1].'\">(.*)<\/span>/';
  8. @preg_match_all($regexp, $source, $down);
  9. return $up; //TO
  10. return $down //I TO
  11. }


Wszystko ok, mogę to rozpisać na dwie funkcje, ale po co na pewno da się to zrobić podczas jednego zapytania.
Jeżeli zrobię tak jak teraz no to zwróci mi tylko to pierwsze (Czyli up, a down pominie - tak wiem zwróci tablice ale to inna bajka).
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




return konczy wykonywanie funkckcji.
Zwracaj tablice

return array($up, $down);
Go to the top of the page
+Quote Post
kaktus283
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 26.03.2010

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


Faktycznie, nie pomyślałem aby zapisać to do tablicy ...
Jeszcze tylko mam problem z odwołaniem się poprawnie do danych elementów tablicy (da się bez stosowania foreach?) - dokładniej z dostaniem się do elementów:
[0][1][0] oraz [1][1][0]
Zwraca mi coś takiego:

Array
  1. (
  2. [0] => Array
  3. (
  4. [0] => Array
  5. (
  6. [0] => <span id="up291505">3</span>
  7.  
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [0] => 3
  13. )
  14.  
  15. )
  16.  
  17. [1] => Array
  18. (
  19. [0] => Array
  20. (
  21. [0] => <span id="down291505">1</span>
  22. )
  23.  
  24. [1] => Array
  25. (
  26. [0] => 1
  27. )
  28.  
  29. )
  30.  
  31. )


Ten post edytował kaktus283 14.02.2011, 10:12:31
Go to the top of the page
+Quote Post
nekomata
post
Post #4





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Mozesz sie odwolywac np.tak
  1. echo $zmienna[0][0][0];// wyswietli <span id="up291505">3</span>
  2. echo $zmienna[1][0][0];// wyswietli <span id="down291505">1</span>

równie dobrze mógłbyś w funkcji dać echo jak te dwa elementy maja być obok siebie, potem tylko wywołać w właściwym miejscu.
Moglbys tez zamienic ten kawalek funkcji
  1. return $up; //TO
  2. return $down //I TO

Na ten
  1. return array($up[0][0],$down[0][0]);

wtedy masz tylko dwa elementy w array'u.

Ten post edytował nekomata 14.02.2011, 17:58:46
Go to the top of the page
+Quote Post
Prezi2907
post
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

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


a nie prościej jest zrobić tak:

  1.  
  2. $array = array($up,$down)
  3. return $array;
  4.  


Później jeżeli chcesz z tego wyciągnąć info to tylko

  1. $up = $array[0];
  2. $down = $array[1];


Zdaje mi się że chyba tak jest najprościej (IMG:style_emoticons/default/smile.gif)

Jak byś miał więcej tablic to zagnieżdżasz jedną w drugą i po sprawie...
Go to the top of the page
+Quote Post
kaktus283
post
Post #6





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 26.03.2010

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


Ja nie chcę zwracać całego ciągu, z którego wycinałem - tylko samą liczbę.
Mi niestety nie zwraca nic, jeśli majstruję coś ze zwracaniem tablicy...
Go to the top of the page
+Quote Post
Piogola
post
Post #7





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


  1. return array($source[0][1][0], $source[1][1][0]);
Go to the top of the page
+Quote Post
kaktus283
post
Post #8





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 26.03.2010

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


Właśnie problem taki, że zwraca mi ciągle takie coś podczas printowania funkcji:
  1. Array ( [0] => [1] => )
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 08:36