我有一个包含很多元素的数组,
Array
(
[0] => Array
(
[Title] => 16MK002
[Supplier] => John Lewis
//other data
)
//other elements
)
我的目的是遍历所有数组元素并检查所有Title的。标题格式应为YYSSSCCC,其中YY为年份,SSS为供应商的前3个字母,CCC为计数。所以上面的应该是16JOH001,而下一个相同供应商的将是16JOH002。在大多数情况下,这种格式已经被遵循,但就像上面的例子一样,有时它不是。如果格式已经正确,则不需要触摸它或重置计数。
因此,为了到达我需要的地方,我像这样开始
foreach($csvArray as $k => $row) {
foreach($row as $key => $value) {
if($csvArray[$k]['Title']) {
print_r($csvArray[$k]['Title']);
}
}
}
我感到困惑的是我将如何检查这与我需要它是什么?
欢迎指教。
谢谢
不使用正则表达式如何?如:
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})
。