PHP将字符串转换为具有可变元素长度的数组

时间:2013-11-14 06:57:31

标签: php arrays string preg-match

我有一个字符串AB0512CD123456并使用preg匹配如何将其转换为

Array[0]='AB';
Array[1]='05';
Array[2]='12CD12';
Array[3]='3456';

这是第一个元素,大小为2,然后是2,6,4等。输入字符串可能是动态的。

3 个答案:

答案 0 :(得分:9)

如果输入字符串长度是固定的,您只需要sscanf()

var_dump(sscanf('AB0512CD123456', '%2s%2s%6s%4s'));

输出:

array(4) {
  [0]=>
  string(2) "AB"
  [1]=>
  string(2) "05"
  [2]=>
  string(6) "12CD12"
  [3]=>
  string(4) "3456"
}

答案 1 :(得分:0)

更好地利用这个:

    $str="AB0512CD123456";
$Array[0] = substr($str, 0,2);
$Array[1] = substr($str, 2,2);
$Array[2] = substr($str, 4,6);
$Array[3] = substr($str, 10,4);

答案 2 :(得分:0)

适用于任何通用模式

此示例使用Paulo Freitas

提议的 sscanf
<?php
$str="AB0512CD123456";
$pattern="2,3,4,5"; // Your pattern
$pattern=explode(",",$pattern);

foreach($pattern as $k=>$v)
{
$newpattern.="%".$v."s";
}
var_dump(sscanf($str,$newpattern));