Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z funkcją wertującą tablice
Forum PHP.pl > Forum > Przedszkole
blu3fire
Witam,
Chciałem napisać funkcję która zwróci tablicę, której elementy są przemnożone przez liczbę 99. Napisałem taki oto kod:
  1. function val($cos){
  2. if (is_array($cos))
  3. {
  4. foreach ($cos as $em)
  5. {
  6. $em = val($em);
  7. }
  8. }
  9. else
  10. {
  11. $cos *= 99;
  12. return $cos;
  13. }
  14. }
  15.  
  16. $liczby = array(1,2,3,4,5,6,7, array(8,9, array(10, 11, 12, 13)));
  17. $b = val($a);
  18.  
  19. echo '<pre>';
  20. print_r($b);
  21. echo '</pre>';


Niestety funkcja val() nic nie zwraca, a miała zwrócić tablicę. W czym problem? Co jest źle? Proszę o pomoc.
jmail
Może tak spróbuj

  1.  
  2. function val($cos){
  3. if (is_array($cos)) {
  4. foreach ($cos as $em){
  5. $em = val($em);
  6. }
  7. return $cos;
  8. }
  9. else
  10. {
  11. $cos *= 99;
  12. return $cos;
  13. }
  14. }
  15.  
seth-kk
  1. ...
  2. foreach ($cos as $index=>$em)
  3. {
  4. $cos[$index] = val($em);
  5. }
  6. return $cos;
  7. ...
Fifi209
Przyda Ci się to:
http://forum.php.pl/index.php?s=&showt...st&p=647711
blu3fire
@jmail, Twój sposób zwraca mi taką samą tablicę... w skrócie $b=$liczby

@seth-kk, Twój sposób tak samo jak jmail'a zwraca tablicę wejściową +generuje: "Warning: Cannot use a scalar value as an array"

@fifi209, Twój sposó ze zmienna globalną działa biggrin.gif, ale niestety nie mogę używać globalnych bo są wyłączone na serwerze hostingowym. Poza tym "spłaszcza" tablicę w jednowymiarową...

Need help!
erix
To zerknij do tematu zalinkowanego przez ~fifi209, tylko post wyżej. ;]

Podpowiedź: RecursiveIteratorIterator.
blu3fire
Dzięki za wskazówkę...

Jednak nie mam zielonego pojęcia jak tego użyć. withstupidsmiley.gif Szukając czegoś w google o tym RecursiveIteratorIterator znajduję tylko kopie informacji z manuala php.net :/, a ten manual mi za dużo nie mówi...

Prosiłbym jeszcze o pomoc.
erix
Ale w manualu jest w komentarzach tej funkcji gotowiec. tongue.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.