Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pętla w funcji - co robię nie tak?
Forum PHP.pl > Forum > PHP
pepro
Drodzy..
Co robię źle? Otóż:
  1. $mk_map= array_unique($name);
  2. for ($i=0 ; $i<$ile ; $i++){
  3. if( $mk_map[$i])
  4. $is= true;
  5. $map[$i]['name'] = $is;
  6. unset($is);
  7. }

otrzymuję tablicę, która wygląda tak:
  1. array(6) {
  2. [0]=>
  3. array(1) {
  4. ["name"]=>
  5. bool(true)
  6. }
  7. [1]=>
  8. array(1) {
  9. ["name"]=>
  10. NULL
  11. }
  12. [2]=>
  13. array(1) {
  14. ["name"]=>
  15. bool(true)
  16. ...............

I o taki efekt mi chodzi. Pętla pojawić się ma co najmniej kilka razy. Wymyśliłem, że z pętli zrobię funkcje i ją tylko wywołam. Niestety nie działa. Co robię nie tak?
  1. function uniq_rec($data)
  2. {
  3. $mk_map= array_unique($data);
  4. for ($i=0 ; $i<$ile ; $i++){
  5. if( $mk_map[$i])
  6. $is= true;
  7. $map[$i]['name'] = $is;
  8. unset($is);
  9. }
  10. return $map[$i]['name'];
  11. }
  12.  


Czy w ogóle da się takie coś zrobić?
PS. Może ktoś ma pomysł na "ładniejsze" ciało pętli?
solr
Jaką wartość ma $ile wewnątrz funkcji? :-)

A ciało funkcji bym napisał tak:

  1. function uniq_rec(array $data)
  2. {
  3. $map = array();
  4.  
  5. $mk_map= array_unique($data);
  6. //$ile = count($mk_map);
  7. for ($i=0 ; $i<$ile ; $i++) {
  8. $map[$i]['name'] = ($mk_map[$i]) ? true : null; // zakladam, ze naprawde chcesz null jak nie ma, bardziej intuicyjne powinno byc false
  9. }
  10.  
  11. return $map;
  12. }


edited: poprawilem wartosc zwracana przez funkcje
pepro
  1. $ile = count($name);
  2.  
  3. //reszta pętla etc
  4. ....
  5. $map=uniq_rec($name);


$var_dump($map) - pokazuje NULL.


hmmm, czy w funkcji powinienem umieścić tablicę $name??, ale to chyba troszkę bez sensu
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.