Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]pętla na elementach tablicy wewnątrz funkcji [NIE DZIAŁA]
zoorg
post 19.12.2014, 19:10:21
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.03.2007

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


witam,

Jeśli ten kod umieszczam w funkcji i wywołuję później tą funkcję - działania w funkcji nie wyświetlają się, jeśli kod wprowadzę poza funkcję - wynik operacji wyświetla się prawidłowo - Czy może ktoś wyjaśnić Dlaczego?

np
  1. function m3(){
  2.  
  3. $tablica = $f2;
  4.  
  5. foreach ($tablica as $wartosc1) {
  6. foreach ($wartosc1 as $wartosc2) {
  7. print "$wartosc2\n";
  8. }
  9. }
  10. echo 'test...';
  11. }
  12.  
  13.  
  14. przy wywołaniu
  15.  
  16. m3();

wynik: test...

dla takiego kodu wewnątrz funkcji wyświetla się tylko kontrolne echo test,
jeśli ten kod umieszczę poza funkcja - wszystko działa poprawnie - Dlaczego?

Tablica jest 2 wymiarowa, w poszczególnych elementach moze znajdować się 0,1,2,3 lub 4, wielokrotnie (w wierszu jest 100 wartości), genealnie chodzi mi o wypisanie w jednej linii po kolei samych 1,2,3,4 wraz z pozycją na której są czyli np dla pozycji

[0][70] 4, [0][75] 4
[0][26] 1, [0][76] 1 itp

dwoma pętlami for (dla xa i ygreka - (poza funkcją) i jednego if ($f2[$g][$h] == 4 echo $h - działa bez problemu. Ale nie moge takiego kodu wprowadzić do funkcji. (w sensie - nic nie zwraca ;]

Ktoś jakieś pomysły? - (poza odesłaniem do manuala ;-) ..co grabię juz kilka godzin..

Ten post edytował Kshyhoo 19.12.2014, 20:45:39
Powód edycji: [Kshyhoo]: tagi PHP są odpowiedniejsze
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 19:16:50
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


a moze print "{$wartosc2}" zadziala ogolnie po co uzywasz print, od tego masz echo smile.gif
Go to the top of the page
+Quote Post
aniolekx
post 19.12.2014, 19:51:04
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


przypisujesz $tablica = $f2; a skąd w tej funkcji bierze się owo $f2??
Go to the top of the page
+Quote Post
zoorg
post 19.12.2014, 19:52:04
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.03.2007

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


zarówno print jak i echo poza funkcją - działają, jeśli ten sam kod wklejam wewnątrz funkcji i wywołuję ją, funkcja nie zwraca nic z iteracji po tablicy,

  1. [code]function bla4(){ for ($g=43;$g<=43;$g++){ // np 44 wiersz tabeli
  2. for ($h=1;$h<=100;$h++){ //kolejne nagłówki
  3. if ($f2[$g][$h] == 4 ){ echo $h ;}
  4. echo 'testyyy'.$f2[$g][$h].' tu jest dalej';
  5. }
  6.  
  7. }
  8. } //END bla4
  9.  
  10.  
  11. bla4();[code]



wynik

testyyy tu jest dalej

----------------------------
ten sam kod POZA FUNKCJĄ, wypisuje kolejne elementy z tablicy, które mają wartość 4 dlaczego nie działa to wew funkcji?

// zamiana na print "($wartość2\n)" , print ($wartosc2) - nic nie poprawia

Ten post edytował zoorg 19.12.2014, 20:41:32
Go to the top of the page
+Quote Post
sazian
post 19.12.2014, 20:28:05
Post #5





Grupa: Zarejestrowani
Postów: 1 043
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


jak zauważył @aniolekx zmienna $f2 jest niewidoczna w funkcji
Go to the top of the page
+Quote Post
Kshyhoo
post 19.12.2014, 20:35:13
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przenoszę do działu Przedszkole. Proszę autora o umieszczenie kodu w stosownym bb-code i dodanie do tytułu tagów.


--------------------
Go to the top of the page
+Quote Post
zoorg
post 19.12.2014, 20:42:40
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.03.2007

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


noo tak, w funkiorce wystarczyło
dodać

Kod
global $f2



Dziękuję WAM Ślicznie -)
Go to the top of the page
+Quote Post
aniolekx
post 19.12.2014, 23:10:12
Post #8





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


Cytat(zoorg @ 19.12.2014, 21:42:40 ) *
noo tak, w funkiorce wystarczyło
dodać

Kod
global $f2



Dziękuję WAM Ślicznie -)


OMG....
Go to the top of the page
+Quote Post
Boshi
post 20.12.2014, 00:30:05
Post #9





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


A po co używać funkcji globalnych ...? przekaż ją jako parametr do funkcji;]
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: 16.04.2024 - 05:21