Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak pozbyc sie luk z tablicy?
Forum PHP.pl > Forum > Przedszkole
Anonymous
witam:) czy jest jakis prosty sposob pozbycia sie z tablicy pol o wartosci null? Tzn chodzi mi o to zeby tablica zamiast tak:

0 aaa
1 bbb
2 null
3 ccc

wygladala tak:

0 aaa
1 bbb
2 ccc


z gory dzieki za wsparcie winksmiley.jpg
mike
Ja bym to zrobił tak. O ile w manualu nie ma gotowego rozwiązania, nie sprawdzałem.
  1. <?php
  2. function is_assoc($arrTab) //sprawdza czy tablica jest asocjacyjna
  3. {
  4. return is_array($arrTab) && array_keys($arrTab) !== range( 0,sizeof( $arrTab )-);
  5. }
  6.  
  7. function CompressTab( &$arrTab )
  8. {
  9. $arrTemp = array();
  10. foreach( $arrTab as $strKey => $mixValue )
  11. {
  12. if( $mixValue != NULL )
  13. {
  14. if( is_assoc($arrTab) )
  15. {
  16. //jeżeli tablica jesy asocjacyjna
  17. $arrTemp[ $strKey ] = $mixValue;
  18. }
  19. else
  20. {
  21. //jeżeli tablica nie jest asocjacyjna
  22. $arrTemp[] = $mixValue;
  23. }
  24. }
  25. }
  26. $arrTab = $arrTemp;
  27. }
  28. ?>

Przykład użycia:
  1. <?php
  2. $arrTablica = array(); //jakaś tablica , niech ma jakieś wartości
  3. CompressTab( $tab ); //i po wszystkim;
  4. ?>

Pozdrawiam.
shpyo
[php:1:1f75ab0d02]<?php
//##### usuwanie elementu z tablicy #####
function usunElement($arr, $offset)
//$arr - tablica z ktorej chcesz usunać jakiś element
//$offset nr pola
{
$ii = 0;
foreach($arr AS $key=>$val)
{
if($ii != $offset)
$tmp[$key] = $val;
$ii++;
}
return $tmp;
}
?>[/php:1:1f75ab0d02]

funkcja wzieta prosto z komenatrzy z manuala + male "udoskonalenia"
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.