Nie pełna tablica, przepisanie jej na pełną.

Dział poświęcony programowaniu w każdym języku.

Nie pełna tablica, przepisanie jej na pełną.

Postprzez BlueMan » 2007-11-26, 01:07:10

Mam kilka pul w formularzu jaki przesyłam.
Identyfikuje je jako:
Kod: Zaznacz cały
<input type="text" name="word[0]" size="50" /><br />
<input type="text" name="word[1]" size="50" /><br />
<input type="text" name="word[2]" size="50" /><br />

Więc dostaję tablicę $word.

Problem polega na tym, że nie raz może ktoś wpisać tylko 2 wyraz (0 i 1 będą puste) i wyśle tak formularz.
Przez co dzięki:
Kod: Zaznacz cały
$words = array_unique($_POST['word']);
         print_r($words);

otrzymam
Array ( [0] =>
[2] => adf )


Ale wolałbym otrzymać
Array ( [0] =>
[1] => adf )

Czyli, abym miał numerowe po kolei wszystko, a nie wybiórczo to co user przesłał :/

Szukałem, ale nie znalazłem - jest jakaś funkcja PHP do tego ?
Albo ma ktoś jakieś rozwiązanie problemu?
korzystać z for() nie chce mi się, bo to dodatkowo spowolni wczytywanie się strony :/ A funkcje systemowe PHP zawsze są wydajniejsze !
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: Nie pełna tablica, przepisanie jej na pełną.

Postprzez Júzek » 2007-11-28, 00:37:09

A co powiesz na taki algorytm:

Jeżeli pole jest puste przepisz wszystkie następne o jedno miejsce w tył, gdzie tył to komórka bliższa pierwszej ?
Avatar użytkownika
JúzekNone specified
BOSSu
BOSSu
 
Posty: 830
Dołączył(a): 2006-06-23, 15:08:15
Lokalizacja: ols.vectranet.pl
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Nie pełna tablica, przepisanie jej na pełną.

Postprzez BlueMan » 2007-11-28, 00:39:18

Kod: Zaznacz cały
$words = array_unique($_POST['word']);
         if ( count($words)>1 ) {
            $nWords = array();
            $ile = count($words);
            for ($i=0; $i<$ile; $i++) {
               if (!empty($words[$i])) {
                  array_push($nWords, trim($words[$i]));
               }
            }

Tak to rozwiązałem, ale nie jest to chyba super optymalne :/
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: Nie pełna tablica, przepisanie jej na pełną.

Postprzez smut » 2007-11-29, 21:47:56

Zamiast

Kod: Zaznacz cały
$words = array_unique($_POST['word']) ;


i kombinowania ;) daj to:

Kod: Zaznacz cały
$words = array_values( array_unique($_POST['word']) );


Pasuje?
Avatar użytkownika
smutNone specified
Stały bywalec
Stały bywalec
 
Posty: 56
Dołączył(a): 2007-05-26, 18:06:53
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy


  • Inne

Powrót do Programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 82 gości

cron