Я пытаюсь разбить строку на 1, 2 и 3 сегмента.
Например, у меня в настоящее время есть это:
$str = 'test';
$arr1 = str_split($str);
foreach($arr1 as $ar1) {
echo strtolower($ar1).' ';
}
Что хорошо работает на 1 разделение символов, я получаю:
t e s t
Однако, когда я пытаюсь:
$arr2 = str_split($str, 2);
Я получил:
te st
Есть ли способ, чтобы я мог вывести это? :
te es st
а потом еще с 3-мя символами вроде этого?
tes est
Вот:
function SplitStringInWeirdWay($string, $num) {
for ($i = 0; $i < strlen($string)-$num+1; $i++) {
$result[] = substr($string, $i, $num);
}
return $result;
}
$string = "aeioubcdfghjkl";
$array = SplitStringInWeirdWay($string, 4);
echo "<pre>";
print_r($array);
echo "</pre>";
PHPFiddle Link: http://phpfiddle.org/main/code/1bvp-pyk9
И после этого вы можете просто повторить его в одной строке, например:
echo implode($array, ' ');
Попробуй это, поменяй $length
до 1 или 3:
$string = 'test';
$length = 2;
$start = -1;
while( $start++ + $length < strlen( $string ) ) {
$array[] = substr( $string, $start, $length );
}
print_r( $array );
/*
Array
(
[0] => te
[1] => es
[2] => st
)
*/
использование
$string{0} $string{1} $string{n}
чтобы получить символы, которые вы хотите!
Затем вы можете использовать цикл в вашей строке, используя strlen
$length = strlen($string);
for($i = 0; $i < $length; ++$i){
// Your job
}
Затем используйте $ i, $ i — 1, $ i + 1, чтобы выбрать символы.
<?php
function my_split($string, $count){
if(strlen($string) <= $count){
return $string;
}
$my_string = "";
for($i; $i< strlen($string) - $count + 1; $i++){
$my_string .= substr($string, $i, $count). ' ';
}
return trim($my_string);
}
echo my_split('test', 3);
?>
И будет «Tes Est»
Самый простой способ, вы можете сделать это с chunk_split:
$str = "testgapstring";
$res = chunk_split($str, 3, ' ');
echo $res; // 'tes tga pst rin g '
но у вас есть дополнительный символ пробела в конце, также, если вам нужно, чтобы это был массив, что-то будет работать:
$chunked = chunk_split($str, 3, ' ');
$arr = explode(' ', rtrim($chunked));
Другой пример:
echo $chunked = rtrim(chunk_split('test', 2, ' ')); // 'te st'