Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Porównywanie tablicy z srtingiem.
tadeurz
post 30.05.2012, 16:26:34
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 25.04.2009

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


  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
Go to the top of the page
+Quote Post
IProSoft
post 30.05.2012, 16:40:03
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


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>';


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
tadeurz
post 30.05.2012, 17:03:36
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 25.04.2009

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


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
Go to the top of the page
+Quote Post
johny_s
post 30.05.2012, 17:10:19
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


cos zle kopiujesz to co podal IProSoft dziala jak powinno
Go to the top of the page
+Quote Post
tadeurz
post 30.05.2012, 17:19:20
Post #5





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 25.04.2009

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


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.

Ten post edytował tadeurz 30.05.2012, 17:28:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 07:28