Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pętla w funcji - co robię nie tak?
pepro
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 20.09.2012

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


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?

Ten post edytował pepro 20.08.2013, 16:24:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
solr
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 8
Dołączył: 11.08.2010

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


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

Ten post edytował solr 20.08.2013, 16:48:41
Go to the top of the page
+Quote Post
pepro
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 20.09.2012

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


  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
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: 8.10.2025 - 05:36