将具有多个长度的字符串拆分为数组

时间:2018-11-12 01:36:23

标签: php arrays

我有一个这样的字符串列表

A45618416541548234
A48432185120148084
A15973357048208202

我想将这些字符串分割成这样的数组

Array
(
 [0] => Array
  (
   [0] => A45
   [1] => 6184165
   [2] => 41548234
  )
 [1] => Array
  (
   [0] => A48
   [1] => 4321851
   [2] => 20148084
  )
 [2] => Array
  (
   [0] => A15
   [1] => 9733570
   [2] => 48208202
  )
)

我想将字符串分成3个部分-第1到第3个字符,第4到第10个字符以及第11到18个字符。 我尝试使用substr进行此操作,但是我可以像上面那样制作一个数组... 我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用array_mapsubstr来实现自己的目标:

$strings = array('A45618416541548234', 'A48432185120148084', 'A15973357048208202');

print_r(array_map(function ($v) {
                      return array(substr($v, 0, 3), substr($v, 3, 7), substr($v, 10, 8)); }
                , $strings));

输出:

Array
(
 [0] => Array
  (
   [0] => A45
   [1] => 6184165
   [2] => 41548234
  )
 [1] => Array
  (
   [0] => A48
   [1] => 4321851
   [2] => 20148084
  )
 [2] => Array
  (
   [0] => A15
   [1] => 9733570
   [2] => 48208202
  )
)

Demo on 3v4l.org