Php 从字符串获取数组
我有一个字符串示例Php 从字符串获取数组,php,arrays,string,split,Php,Arrays,String,Split,我有一个字符串示例123456789999987654321112309101 First 3 characters is data0 Second 2 characters is data1 Third 9 characters is data2 Fourth 5 characters is data3 Fifrt 12 characters is data4 如何在数据长度不同的数组中拆分此字符串。您可以使用以下函数: $str = '123456789999998765432111230
123456789999987654321112309101
First 3 characters is data0
Second 2 characters is data1
Third 9 characters is data2
Fourth 5 characters is data3
Fifrt 12 characters is data4
如何在数据长度不同的数组中拆分此字符串。您可以使用以下函数:
$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
)
Array
(
[data0] => 123
[data1] => 45
[data2] => 678999999
[data3] => 87654
[data4] => 321112309101
)
如果字符串太大,并且定义了长度值数组,则可以使用此循环:
$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
(
[0] => 123
[1] => 45
[2] => 678999999
[3] => 87654
[4] => 321112309101
)
Array
(
[data0] => 123
[data1] => 45
[data2] => 678999999
[data3] => 87654
[data4] => 321112309101
)
好的,我知道这个解决方案的有效性,但是有内联解决方案吗?我有2048个长度的字符串,包含超过100个数据。@Zuck19,检查它。@AksenP他提到有超过100个数据,所以这两个解决方案都不起作用,在这个问题中,他需要指定数据长度的分布。@Zuck19应该在问题中。你的问题太少了。不清楚数据长度不同的
是否会因数据点而异。添加三个样本以及它们应该如何分离。@Ajith,你不是OP。他定义了几个数据的长度,因此,他可以非常轻松地创建$len
数组。