使用正则表达式格式化数组元素

时间:2016-10-12 20:10:19

标签: php arrays regex

我有一个包含很多元素的数组,

arr1 = with_ref + without_ref

我的目标是遍历所有数组元素并检查所有标题。标题应采用YYSSSCCC格式,其中YY为年份,SSS为供应商的前3个字母,CCC为计数。所以上面应该是16JOH001,而下一个同一供应商将是16JOH002。在大多数情况下,这种格式已经被遵循,但是像上面的例子一样,有时它不是。如果格式已经正确,则无需触摸或重置计数。

所以,为了达到我需要的地方,我已经开始这样了

map

我感到困惑的是,我将如何根据我的需要来检查这一点?

任何建议表示赞赏。

由于

1 个答案:

答案 0 :(得分:1)

不使用正则表达式怎么样?像:

if (strlen($csvArray[$k]['Title']) == 8) {
  $Y2K = substr($csvArray[$k]['Title'],0,2);
  $sup = substr($csvArray[$k]['Title'],2,3);
  $cnt = substr($csvArray[$k]['Title'],5,3);
  if (strtoupper($sup) != strtoupper(substr($csvArray[$k]['Supplier'],0,3))) {
    # doing something about this
  }
} else {
  # doing something else about this
}

否则您将要使用以下内容:(\d{2})([A-Z]{3})(\d{3})。尝试按PHP Button on this page