| 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: 15 let
|
|||
0