Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Porównywanie tablicy z srtingiem.
Forum PHP.pl > Forum > PHP
tadeurz
  1. $Tekst_pl = 'Pierwszy1 wiersz#Drugi1 wiersz#Trzeci1Wiersz#next#Pierwszy1Wiersz';
  2. $Tekst_en = 'Pierwszy wiersz#Drugi wiersz#TrzeciWiersz#next#PierwszyWiersz';
  3. function Tekst($Tekst_pl,$Tekst_en){
  4.  
  5.  
  6. $PLline = explode("#", $Tekst_pl);
  7. $ENline = explode("#", $Tekst_en);
  8.  
  9. $ile=count($PLline);
  10. $c=0;
  11. for($c ; $c< $ile ; $c++){
  12. $en = (string) $ENline[$c];
  13. $pl = (string) $PLline[$c];
  14. if( $en=='next' && $pl=='next' ){ $NewTekst='<tr class="Next"><td></td><td></td></tr>';
  15. }else{ $NewTekst= '<tr><td>'.$ENline[$c].'</td><td>'.$PLline[$c].'</td></tr>';}
  16. $tekst = $tekst.$NewTekst;
  17. }
  18.  
  19. return $tekst;
  20. }

I ta oto funkcja zwróci nam:
<tr><td>Pierwszy1 wiersz</td><td>Pierwszy wiersz</td></tr>
<tr><td>Drugi1 wiersz</td><td>Drugi wiersz</td></tr>
<tr><td>Trzeci1 wiersz</td><td>Trzeci wiersz</td></tr>
<tr><td>next</td><td>next</td></tr>
<tr><td>Pierwszy1 wiersz</td><td>Pierwszy wiersz</td></tr>

Dlaczego nie wchodzi do PRAWDY dla 3 wykonania ($c = 3) questionmark.gif
IProSoft
Poprawiane z palca więc nie wiem czy dobrze ale chyba tak:
  1. $Tekst_pl = 'Pierwszy1 wiersz#Drugi1 wiersz#Trzeci1Wiersz#next#Pierwszy2222Wiersz';
  2. $Tekst_en = 'Pierwszy wiersz#Drugi wiersz#TrzeciWiersz#next#Pierwszy22Wiersz';
  3. function Tekst($Tekst_pl,$Tekst_en){
  4.  
  5.  
  6. $PLline = explode("#", $Tekst_pl);
  7. $ENline = explode("#", $Tekst_en);
  8. $tekst = '';
  9. $ile=count($PLline);
  10. $c=0;
  11. for($c ; $c< $ile ; $c++){
  12. $en = (string) $ENline[$c];
  13. $pl = (string) $PLline[$c];
  14. if( $en=='next' && $pl=='next' ){
  15. $tekst .= '<tr class="Next"><td>----</td><td>-----</td></tr>';
  16. }else{
  17. $tekst .= '<tr><td>'.$ENline[$c].'</td><td>'.$PLline[$c].'</td></tr>';}
  18. }
  19.  
  20. return $tekst;
  21. }
  22. echo '<table>'.Tekst($Tekst_pl,$Tekst_en).'</table>';
tadeurz
Znowu to samo.
Problem tkwi w tym że dla $c=3 (zmienne $en i $pl sa równe next) powinien wydrukować --- --- a on drukuje next next, czyli nie wchodzi do PRAWDY dla if.
Ten warunek jest zły -> tylko nie wiem dlaczego. arrowheadsmiley.png
johny_s
cos zle kopiujesz to co podal IProSoft dziala jak powinno
tadeurz
Tak masz racje, jeżeli skopuje to co IProSoft napisał to działa-> przepraszam nie sprawdziłem.

Ale jak pewnie się domyślacie funkcja ta jest cześcią z całości -> więc skopiowałem ją do całości i tam już nie działa.
A z tego wynika że coś jest nie tak z zmiennymi otrzymanymi SQL'em które potem wrzucam do funkcji.Przynajmniej wiem że funkcja sama w sobie jest dobra.


Edit:
Działa tak jak należy wiersze w badzie danych miałem zapisane:
wiersz 1#
wiersz 2#
wiersz 3#
Gdy poprawiłem na:
wiersz 1#wiersz 2#wiersz 3#
Problem znikł.Chodziło pewnie o znak załamania lini \n.

Pomógł dla IProSoft bo rozwiął moje wątpliwości co do poprwności funkcji.
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.