你可以使用substr()函数:
$str = '1234567899999987654321112309101';
$res = [];
$res[] = substr($str,0,3); // chars 1-3
$res[] = substr($str,3,2); // chars 4-5
$res[] = substr($str,5,9); // chars 6-14
$res[] = substr($str,14,5); // chars 15-19
$res[] = substr($str,19,12); // chars 20-31
输出:
Array
(
[0] => 123
[1] => 45
[2] => 678999999
[3] => 87654
[4] => 321112309101
)
Demo
如果字符串太大并且你有一个定义的长度值数组,你可以使用这个循环:
$str = '1234567899999987654321112309101';
$len = [3,2,9,5,12];
$res = [];
$i = 0;
foreach($len as $ind => $l){
$res['data'.$ind] = substr($str,$i,$l);
$i += $l;
}
输出:
Array
(
[data0] => 123
[data1] => 45
[data2] => 678999999
[data3] => 87654
[data4] => 321112309101
)
Demo2