Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z funkcją + in_array()
grabarz5
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 16.03.2015

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


Witam.
Przesiedziałem chyba godzinę nad znalezieniem problemu. Bezskutecznie. Idąc w myśl powiedzenia "co dwie głowy to nie jedna", zamieszczam kod pewnej funkcji:
  1. function translate($tString){
  2. $dictionary = file('dictionary.txt');
  3.  
  4. for($i=0; $i<count($dictionary); $i++){
  5. $rawVerb = explode(' ', $dictionary[$i]);
  6. $dVerb[] = $rawVerb[0];
  7. $pVerb[] = $rawVerb[1];
  8. }
  9.  
  10. $rawString = explode(' ',$tString);
  11.  
  12. for($x=0; $x<count($rawString); $x++){
  13. if(in_array($rawString[$x], $pVerb)){
  14. echo $eString[] = $dVerb[$nx];
  15. }
  16. }
  17. return $eString;
  18. }


Funkcja na wejściu otrzymuje wartość pola tekstowego.
Plik dictionary.txt jest zwykłym plikiem tekstowym. Sam plik odczytywany jest poprawnie. Problem leży przy zmiennej $eString, która zwyczajnie, wg interpretera, sobie nie istnieje. Nie potrafię znaleźć powodu.

Z góry bardzo dziękuję za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mstraczkowski
post
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

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


Na pierwszy rzut oka, linijka 14 - używasz zmiennej $nx, która nie istnieje.

Dodatkowo proponowałbym zadeklarować sobie zmienną $eString wcześniej jako np. pusta tablica.
Zwracasz ją w wyniku funkcji, a nie zawsze będzie ona wypełniania (musi być spełniony konkretny warunek)

Dzięki temu, funkcja zwróci ci pustą tablicę zamiast NULL + notice w przypadku gdy nie dojdzie do jej wypełniania.

Ten post edytował mstraczkowski 19.04.2015, 00:35:08
Go to the top of the page
+Quote Post

Posty w temacie


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: 30.12.2025 - 03:38