Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]puste pola
Forum PHP.pl > Forum > Przedszkole
Wrona
Witam,

mam tablice z różnymi słowami, jednak niektóre wiersze w tablicy składają się z pustej treści, w jaki sposób mogę usunąć te wiersze, is_null nie pomaga.

Proszę o pomoc, z góry dzięki
no_face
empty i unset(tablica[index])
Wrona
dałem:

CODE
for($i = 0;$i<=count($counts);$i++){
if(empty($counts->counts[$i])){
unset($counts->counts[$i]);
}
}


i nie działa, dalej są puste pola
no_face
Jest to tablica obiektu, czy tylko od tak zastosowales ten zapis?

wiec albo liczysz na obiekcie, albo poza

  1. <?php
  2. for($i = 0;$i<=count($counts);$i++)
  3. {
  4.    if(empty($counts[$i]))
  5.     {
  6.        unset($counts[$i]);
  7.     }
  8. }
  9. ?>
Wrona
sory źle skopiowałem liczę na obiekcie, ale taki błąd spoko rozkmnił bym:d

może opiszę bardziej swój problem:

- pobieram treść jakiejś tam strony
- usuwam wszystkie tagi html zostaje tylko treść strony
- dziele sobie to na wyrazy (dzieląc po spacji)
$this->words = explode(' ', $this->tresc);

i teraz posiadam tablice gdzie są albo wyrazy albo właśnie takie przerwy i chciałbym usunąć wszystkie przerwy,

na razie próbuje robić to tak:

CODE
<?
for($i = 0;$i<=count($this->words);$i++){
if(empty($this->words[$i])){
unset($this->words[$i]);
}
}
?>
bartg
  1. <?php
  2. foreach($this->words AS $k => $v)
  3. {
  4. if(empty($this->words[$k]))
  5. {
  6. unset($this->words[$k]);
  7. }
  8. }
  9. ?>

To zadziała jeśli rekord jest faktycznie pusty. Jeśli zawiera np. spacje to już pusty nie jest
Jeśli chcesz sprawdzac zeby spacje tez pomijało to:
  1. <?php
  2. foreach($this->words AS $k => $v)
  3. {
  4. if(preg_match('![ ]*!i', $this->words[$k]))
  5. {
  6. unset($this->words[$k]);
  7. }
  8. }
  9. ?>

Pisane z palca nie wiem czy preg zadziała
Wrona
niestety dalej nie usuwa
Fifi209
A o trim" title="Zobacz w manualu PHP" target="_manual Pan słyszał ? snitch.gif

Usuwa tzn. białe znaki w tym spacje. winksmiley.jpg
Wrona
trim używam
no_face
  1. <?php
  2. for($i = 0;$i<=count($this->words);$i++){
  3.  
  4.    if(empty(trim($this->words[$i]))){
  5.  
  6.        unset($this->words[$i]);
  7.  
  8.    }
  9.  
  10. }
  11. ?>


Przed sprawdzeniem czy istnieje jakies slowo w elemencie tablicy, przepuszczamy przez trim. Powinno pousuwac wszystkie puste elementy tablicy.
Wrona
dzięki, faktycznie puste już usuwa,
a mógłbym Cie jeszcze prosić żebyś powiedział mi jak usuną tego typu wiersze:

[ Coś tam dff] => 2
[ertrt ] => 1

czyli że jest tekst ale jest też duża liczba spacji

Z góry dziękuję
Crozin
  1. <?php
  2.  
  3. $content = '...'; //źródło strony bez znaczników XHTMLa
  4.  
  5. $words = preg_split('#s+#', $content);
  6. ?>
I powinieneś mieć załatwione wszystko za jednym razem.
Wrona
dzięki, działa, rozwiązuje wszystkie moje problemy
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.