例如:a001d001,s002f00d001,a001d002,s002f00d002,a001d003,a001d004,s002f00d003
通过算法能将以上字符序列分成两个序列:
a001d001,a001d002,a001d003,a001d004
和
s002f00d001,s002f00d002,s002f00d003相似字符之间变化的部分都在最后3-4位的流水号,流水号的出现不一定从1开始,也不一定连续;流水号的长度可能是三位或四位,相似字符串之间的流水号部分长度是相同的
通过算法能将以上字符序列分成两个序列:
a001d001,a001d002,a001d003,a001d004
和
s002f00d001,s002f00d002,s002f00d003相似字符之间变化的部分都在最后3-4位的流水号,流水号的出现不一定从1开始,也不一定连续;流水号的长度可能是三位或四位,相似字符串之间的流水号部分长度是相同的
$array = array();
foreach($arr AS $v)
{
$array[substr($v, 0, 4)][] = $v;//下标可以根据情况调整,符合某种格式,截取某一段即可
}
print_r($array);
$array = array();foreach($arr AS $v)
{
$array[preg_replace('/(\w+[a-zA-Z])(\d+)/', "\$1", $v)][] = $v;
//是不是流水号是纯数字组成,前面的部分,最后一位是字母???
//这样能满足要求么?
}
print_r($r);
结果:
Array
(
[a001d] => Array
(
[0] => a001d001
[1] => a001d002
[2] => a001d003
[3] => a001d004
) [s002f00d] => Array
(
[0] => s002f00d001
[1] => s002f00d002
[2] => s002f00d003
))