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