Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 16. 10. 2012, 14:12:43
Jak se dají přehodit písmena v řetězci (asi pomocí reguláru) , 1. za 2., 3 za 4. , atd.. aby to fungovalo při různé délce slov? :
$slovo= "123456"; $vysledek = "214365"; // nebo $slovo= "abcdef"; $vysledek = "badcfe"; |
||
whoami Profil |
#2 · Zasláno: 16. 10. 2012, 14:59:54
<?php function foo ( $string = '' ) { $return = ''; $tmp = str_split($string, 2); foreach ( $tmp as $part ) { $return .= strrev($part); } return $return; } echo foo('123456')."\n"; // 214365 echo foo('abcdef')."\n"; // badcfe ?> |
||
Tori Profil |
Funkce od whoami* se dá mírně zrychlit použitím funkcí pro pole:
function foo ( $string = '' ) { $tmp = array_map('strrev', str_split($string, 2)); return implode('', $tmp); } function presypZnaky($str = '') { return preg_replace('~(.)(.)~u', '$2$1', $str); } * whoami: Skloňujete se nebo ne? :-) |
||
whoami Profil |
Tori:
Co se týče skloňování jména, tak podle pravidel anglického jazyka. (Tedy příkazů pro BASH) A co se týče řešení, tak bych se sklonil k vašemu, ke kterému bych také došel. Pro svou aplikaci bych věnoval více přemýšlení. |
||
nethor Profil |
#5 · Zasláno: 16. 10. 2012, 15:45:45
Tori:
preg_replace('~(.)(.)~u', '$2$1', $str); To je přesně ono. (Jak prosté:-) Díky! |
||
Časová prodleva: 12 let
|
0