我从数据库中获取了一些长字符串,我需要将其解析为没有一个大字符串而是多个字符串,其中每个字符串都有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);
但我觉得有一些更简单的方法可以做到这一点,当我不知道字符串的长度时,我的方法也是一个问题。
感谢您的任何建议。
答案 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]);