Autor | Zpráva | ||
---|---|---|---|
kokolino Profil |
#1 · Zasláno: 21. 4. 2011, 13:51:29
ahojte
mám text v tabuľke ako je to tuto Odkaz ja by som potreboval urobiť nasledujúcu vec, všetky slová, ktoré sa nezhodujú s prvým postupne nahradiť iným číslom /textom napríkld všetky texty "oko" by sa nahradili 1 a vsetky slová "aaa" sa nahradili 2 viem zistiť, ktoré slová sa nezhodujú s prvým, tie si zapísujem zatiaľ do poľa (pretože odlišné slová sa majú nahradzovať postupne ) mohli by ste mi poradiť/nasmerovať ma ako to mám spraviť ? predom ďakujem za každú radu |
||
l564 Profil |
#2 · Zasláno: 21. 4. 2011, 13:52:49
A tabulku načítáš přes MySql nebo normálně jí máš v HTML
|
||
kokolino Profil |
#3 · Zasláno: 21. 4. 2011, 14:45:58 · Upravil/a: kokolino
l564:
hodnoty do tabuľky načítavam zo súbora <?php $file = file("janko.txt", FILE_SKIP_EMPTY_LINES); for ($i=0; $i<count($file); $i++) { $row = $file[$i][0]; $col = $file[$i][1]; $pole[$row][$col]=trim(substr($file[$i],3)); // -------- $cols = max($cols,$col); // pocet stlpcov tabulky $rows = max($rows,$row); // pocet riadkov tabulky } echo "<br><br><table>"; echo "<tr><td>x/y</td>"; for ($j=0;$j<=$cols; $j++){ echo "<td>$j</td>"; } echo "<tr>"; for ($i=0;$i<=$rows;$i++){ echo "<tr><td>$i</td>"; for($j=0;$j<=$cols;$j++){ echo "<td><table><tr><td>{$pole[$i][$j]}</td></tr></table></td>"; } echo "<tr>"; } echo "</table>"; $prvky=array(); // pole pre prvky, ktore sa nezhoduju s prvou hodnotou v tabulke foreach($auto as $line){ $okno=explode(' ',$line); $otazka=substr($okno[0],-1); if(($otazka==0) and ($otazka!=1)) { if ($mul == '???') $mul = trim($okno[1]); if(trim($okno[1]!=trim($mul))) array_push($prvky,(trim($okno[1]))); } if($okno[1]==$mul) $okno[1]=str_replace($okno[1],"0",$okno[1]); elseif($prvky[1]!=$mul) {$okno[1]=str_replace($okno[1],"1",$okno[1]);} echo"$okno[1]"; } ?> toto mi všetky texty "mul" nahradí 0 ,text "oko" nahradí 1, ale nahradí mi to aj slová "aaa" 1 a nie 2 ako to potrebujem ja |
||
Taps Profil |
#4 · Zasláno: 21. 4. 2011, 18:15:54 · Upravil/a: Taps
kokolino:
zkus <? .... if($okno[1]==$mul) $okno[1]=str_replace("oko","0",$okno[1]); elseif($prvky[1]!=$mul) {$okno[1]=str_replace("aaa","1",$okno[1]);} .... ?> |
||
kokolino Profil |
#5 · Zasláno: 23. 4. 2011, 12:24:03
Taps:
zrejme som sa nevyjadril dostatočne správne v prvom kroku sa má nahradiť vsetko 0 okrem textu "oko", ktoré sa ma nahradiť 1, to znamená aj text "aaa" v druhom kroku opačne tých krokov možem mať "N" vymyslel som niečo takéto : <?php ...... $prvky1=array_values(array_unique($prvky)); // prepocitanie klucov aby som vedel kolko krat mam iny text, podla toho viem kolko krat to musim nahradit $okno1=$okno[1]; // tento riadok ********* if($okno[1]==$mul ) $okno[1]=str_replace($okno[1],"0",$okno[1]); //vsetko co sa rovna prvemu prvku v subore nahrad "0" if($okno[1]==$prvky1[0]) {$okno[1]=str_replace($okno[1],"1",$okno[1]);} //ak sa prvy prvok prvky1("oko") nerovna prvemu prvku v subore nahrad ho "1" else {$okno[1]=str_replace($okno[1],"0",$okno[1]);} //ostatne nezhodne prvky nahrad "0" if($okno1==$mul ) $okno1=str_replace($okno1,"0",$okno1); if($okno1==$prvky1[1]) {$okno1=str_replace($okno1,"2",$okno1);} //ak sa druhy prvok prvky1("aaa") nerovna prvemu prvku v subore nahrad ho "2" else {$okno1=str_replace($okno1,"0",$okno1);} .... ?> Tento spôsob nahradzovania ide ako má problém je v tom, že ja neviem dopredu koľko tých textov budem musieť nahrádzať ak by ich bolo 10 to by som musel robiť nasledovne : riadok 4 by som musel okopírovať 10 krát s tým, že by som len menil index pre $okno1 až $okno10 rovnako riadky 6,7,8 by som musel stále kopírovať a meniť v nich len $prvky1[1] až $prvky1[10] a číslo nahradenia a toto mi vadí lebo ak to spravím pre 10 textov bude to fungovať, ale ak to bude testované na viacerých textoch tak to zlyhá |
||
Časová prodleva: 13 let
|
0