Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] usniecie pustych elementow w tablicy
-Gość_beny_*-
post
Post #1





Goście







Witam,
Korzystam z funkcji array_unique dzieki czemu pozbywam sie powtarzajacych elementow. Problem jest w tym, ze chcialbym miec tablice , ktorej indeks nie zawiera pustych elementow (po usunieciu przez array_unique element zostaje pusty). Czy istnieje funkcja, ktora usunie mi puste elementy z tablicy? Czy musze "przejechac" cala tablice wlasna funcja?
np:
tab[0]='1'
tab[1]='1'
tab[2]='2'
tab[3]='3'
po array_unique mamy:
tab[0]='1'
tab[1]=''
tab[2]='2'
tab[3]='3'
a zalezy mi aby tab wygladala tak
tab[0]='1'
tab[1]='2'
tab[2]='3'
Go to the top of the page
+Quote Post
Ja_Szczur
post
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 4.12.2005
Skąd: Strzyżów

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


  1. <?php
  2. $tab[0] = '1';
  3. $tab[1] = '1';
  4. $tab[2] = '2';
  5. $tab[3] = '3';
  6.  
  7. $tab2 = array_unique( $tab );
  8. $tab3 = array_values( $tab2 );
  9.  
  10. print_r( $tab );
  11. print_r( $tab2 );
  12. print_r( $tab3 );
  13. ?>


[sposób ukazany krok po kroku, nie trzeba tworzyć tablic $tab2 i $tab3, wystarczy $tab]

Ten post edytował Ja_Szczur 12.08.2006, 16:55:11
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







Cytat(Ja_Szczur @ 12.08.2006, 16:54 ) *
[sposób ukazany krok po kroku, nie trzeba tworzyć tablic $tab2 i $tab3, wystarczy $tab]

amen WIELKIE dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Gość_beny_*-
post
Post #4





Goście







Pojawilo mi sie jeszcze jedno pytanie... odwrotne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mam tablice i jak pozostawic w tej tablicy tylko powtarzajace sie elementy? Tez while nie chce calej przejezdzac. Czyli szukam odrotnej funkcji niz array_unique.
np:
tab[0] = '1'
tab[1] = '1'
tab[2] = '2'
tab[3] = '3'
po operacji mam miec:
tab[0] = '1'
Ten efekt uzyskam dzieki array_values ale najpierw trzeba dojsc do takiego stanu
tab[0] = '1'
tab[1] = '1'
Dzieki za podpowiedz
pozdrawiam
BENY
Go to the top of the page
+Quote Post
lukir
post
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

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


Zrób lepiej tak:
  1. <?php
  2. //tablica...
  3. $tab[0] = 1;
  4. $tab[1] = 2;
  5. $tab[2] = 3;
  6. $tab[3] = 1;
  7. $tab[4] = 1;
  8.  
  9. $values = array_count_values($tab);
  10. $tab = array();
  11.  
  12. //$values[1] zwróci 3 (3 wystąpienia '1')
  13. for($i=0; $i<$values[1], $i++) { 
  14. $tab[$i] = 1;
  15. }
  16.  
  17. //powyższa tablica będzie wyglądać tak (ale to bez sensu, jeżeli chcesz mieć $tab[0] = 1):
  18. $tab[0] = 1;
  19. $tab[1] = 1;
  20. $tab[2] = 1;
  21.  
  22. //więc najlepiej będzie tak:
  23. if(in_array('1', $tab)) {
  24. $tab[0] = 1;
  25. }
  26. ?>

i tyle, ale nie wiem, jakie to będzie miało zastosowanie...

Ten post edytował lukir 12.08.2006, 20:14:21
Go to the top of the page
+Quote Post
-Gość_beny_*-
post
Post #6





Goście







Okazuje sie ze w tym wypadku chcialem przekombinowac... Potrzebuje czesci wspolnej dwoch tablic i wlasnie znalazlem array_intersect - chyba bedzie pieknie dzialalo (?)
A wczesniej pytalem o takie rozwiazanie bo - mialem dwie tablice, laczylem je, i chcialem wyszukac powtarzajacych sie elementow. Tylko ze to to samo co czesc wspolna tych dwoch tablic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a nie pomyslalem ze taka funkcja moze byc.
Dzieki
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: 26.08.2025 - 07:38