Portál AbcLinuxu, 20. dubna 2024 03:39


Dotaz: PHP, overovanie stringu

24.5.2011 13:27 kok | skóre: 6
PHP, overovanie stringu
Přečteno: 119×
Odpovědět | Admin
Mam jeden retazec, ktory obsahuje "AB", mam druhy retazec, ktory obsahuje napr. "AC". Potreboval by som nejak overit, ci sa nachadza v prvom retazci prvy znak alebo aj druhy znak. Potom mam premennu s nulovou hodnotou = ak sa nachadza 1 znak, zvysi hodnotu o 1, ak 2 znaky, tak o 2...

Neviete mi poradit? Dik

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.5.2011 14:15 Ben Joyce
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslite: pokud se nachazi v prvnim retezci KDEKOLI prvni znak z druheho retezce nebo pokud se nachazi na STEJNE POZICI jako v druhem retezci - napriklad pokud je prvni retezec "AB" a druhy "AC" pak zvys o jedna a pokud je prvni retezec "BA" a druhy "AC" pak zvys take o jedna? Myslite to tak?
24.5.2011 14:37 Ben Joyce
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Take zalezi na tom, zda zvysit pocet pri vyskytu stejneho znaku dvakrat o dva nebo porad jen o jeden.
24.5.2011 14:52 Ben Joyce
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Zde je kod pro vyhledavani: Je zde cyklus, ktery obsahuje dve podminky, 1. je pro zvyseni o jedna v pripade jakehokoli poctu vyskytu znaku, 2. je pro zvyseni o pocet vyskytu znaku ve stringu. Je treba si vybrat podle toho, ktery zpusob jste myslel!

$hledat_v = "ABOPS";
$hledat_co = "ACBD";
$zvysovatko = 0;

for ($i = 0; $i < count($hledat_co); ++$i)
{

  // Pokud se zvysi jen o jeden v pripade i vice vyskytu...
  if (strpos($hledat_v, $hledat_co[i]))
    ++$zvysovatko;

  // Pokud se zvysi o tolik, kolik je tam vyskytu
  $pocet_vyskytu = preg_match($hledat_co[i], $hledat_v);
  if ($pocet_vyskytu > 0)
    $zvysovatko = $zvysovatko + $pocet_vyskytu;

}
24.5.2011 14:49 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Odpovědět | | Sbalit | Link | Blokovat | Admin
třeba takto?
$i = 0;
$a = "AB";
$b = "AC";

$len = min(strlen($a),strlen($b)); 

while (!strncmp($a, $b, $i+1) && ($len > $i) )
  $i++;

var_dump($i);
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
24.5.2011 14:58 Ben Joyce
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Toto je, jestli jsem to dobre pochopil, pro zvyseni cisla jednoho znaku na stejne pozici v prvnim i v druhem stringu.

Ne ze by jsem vam to chtel nejak vycitat, ale chybel mi k tomu komentar, tak aby to nemusel nekdo jiny znovu zkoumat v dokumentaci.
24.5.2011 15:03 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
ono je to od tazatele docela blbě popsané, co to má vlastně dělat a co se týká čtení dokumentace, tak s tím nemám problém, požná je to tak i lepší, aby si tazatel našel, proč to tak je.
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
24.5.2011 16:28 kok | skóre: 6
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Ospravedlnujem sa za nepresnosti, pozicia sa do uvahy brat nema, cize je jedno, v akom budu poradi.
24.5.2011 18:17 Ben Joyce
Rozbalit Rozbalit vše Re: PHP, overovanie stringu
Pak je vhodny kod umisteny vyse nad timto.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.