我需要将字符串拆分为嵌套数组,如this。 actual data
的小子集aaa100
和bbbbbbbb100
类似的问题是转换file path to array,但我没有像/
那样拆分。
产品导入数千种产品。每个产品代码都由以下内容组成:
xxx product type
yyy size
zzz colour
因此,您有xxxx
,xxxxyy
,xxxxzz
或xxxxyyzz
等代码。
AAA100B // product type AAA with size 100 and colour blue
AAA200B // product type AAA with size 200 and colour blue
AAA100G // product type AAA with size 100 and colour green
BBB100B // product type BBB with size 100 and colour blue
有些没有颜色,有些则没有颜色。可能有些人不会有'匹配'而只是一个单独的代码。
最后一个字符(或两个)通常是一种颜色。颜色可以是以下任何一种。 (颜色代码永远不会在除字符串结尾之外的任何地方)
BK, GY
B, G, O, P, R, S
如果数字的格式为00-00
长度/宽度,则数字被假定为大小,否则为单个大小00
问题粗略开始,实际上存在(扩展和合并是框架的一部分所以只是在那里攻击它们)http://codepad.viper-7.com/Wp19g2
答案 0 :(得分:0)
嗯,我想明显的(但效率有点低)的方法是拿你的代码字符串,遍历字母,直到你到达一个数字(记录所有字母到那一点作为你的产品类型),当你到达一个数字记录该值和它后面的每个数字,直到你再次到达一个字母,然后开始记录颜色。当然,这假定颜色和产品类型不包括数字!
$product_size = ""; $product_type = ""; $product_color = "";
for ($i = 0; $i < strlen ( $code ); $i++ ) {
if ( !is_numeric ( $code [ $i ] ) ) {
if ( $product_size == "" ) $product_type .= $code [ $i ];
else $product_color .= $code [ $i ]
} else $product_size .= $code [ $i ];
}
它是一个很好的设计选择,但有一个分隔符。我的解决方案的一个问题是,如果没有产品尺寸,那么它将永远不会记录颜色。