将多个小字符串中的大字符串分开 - PHP

时间:2015-01-14 09:54:14

标签: php string

我从数据库中获取了一些长字符串,我需要将其解析为没有一个大字符串而是多个字符串,其中每个字符串都有2个字符。

让我们举个例子: 我连接到表,得到这个字符串:B1C1F4G6H4I7J1J8L5O6P2Q1R6T5U8V1Z5,之后我必须在对上解析这个字符串,所以:

B1 C1 F4 G6 H4 I7 J1 J8 L5 O6 P2 Q1 R6 T5 U8 V1 Z5

并做一些循环来插入一些东西。 (例如,在这个2字符串的末尾添加随机数并在之后回显)

我在考虑类似的事情:

$string ="B1C1F4G6H4I7J1J8L5O6P2Q1R6T5U8V1Z5";
$string1 = substr($string,0,2);
$string2 = substr($string,2,3);

但我觉得有一些更简单的方法可以做到这一点,当我不知道字符串的长度时,我的方法也是一个问题。

感谢您的任何建议。

3 个答案:

答案 0 :(得分:2)

$string = "B1C1F4G6H4I7J1J8L5O6P2Q1R6T5U8V1Z5";
$newstring = implode(str_split($string, 2), ' ');
echo $newstring;

答案 1 :(得分:2)

您可以使用preg_replace_callback()

echo preg_replace_callback('/../', function($match) {
    return $match[0] . rand(0, 9);
}, $s);

它会每两个字符运行一次这个函数,你可以附加一个你选择的字符。

答案 2 :(得分:1)

preg_match_all是我的选择:

$string = 'B1C1F4G6H4I7J1J8L5O6P2Q1R6T5U8V1Z5';
// let's find all the chunks of two chars
preg_match_all("/.{1,2}/", $string, $matches);
// there you go
var_dump($matches[0]);