PDA

Просмотр полной версии : небольшой вопрос


rubik-nerubik
03.09.2009, 23:29
как мне реализовать путём пхп
такое
есть строка:
abadada
в неё надо вставить символ |, а именно так:
a|b|a|d|a|d|a

scrat
03.09.2009, 23:42
ну тут либо циклом идти с запоминанием символов, либо преобразовывать в массив, и в него добавлять элементы(array merge какой-нибудь)

rubik-nerubik
03.09.2009, 23:45
ну мож набросаешь?

scrat
03.09.2009, 23:49
не, это как-то заёбно, лучше юзать что-то типа:


function insert_char($index, $str, $char) //добавляет символ $char в строку $str на позицию $index
{
$str_prev = substr($str, $index, -$index);
$str_next = substr($str, $index, strlen($str) - $index);
return $str_prev.$char.$str_next; //возвращаем новую строку, не меняя предыдущую
}

rubik-nerubik
03.09.2009, 23:53
че-то как-то отказывается работать) на денвере точно)

Kaimi
04.09.2009, 00:01
$str = 'fsdgssdhs';
$str = preg_replace('/(.{1})/', '$1|', $str);
print substr($str, 0, strlen($str)-1);

rubik-nerubik
04.09.2009, 00:02
каими респект и уважуха)

Sharky
04.09.2009, 00:07
$str = 'abadada';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
$imp = implode("|", $chars);

echo $imp;

Solker
04.09.2009, 13:32
Тоже предложу свой вариант ответа =)
Зачем регулярные, любая строка это массив.


$str = 'abadada';
for($i=0; $i<strlen($str); $i++)
$finish .= $str[$i]."|";
echo trim($finish,'|');