【发布时间】:2015-01-01 20:06:20
【问题描述】:
这个数组是使用给定文件夹中的文件名设置的。我的文件名将采用以下格式:
style1_color1_product1_0000.png
style1_color1_product2_0001.png
style1_color1_product3_0002.png
style1_color2_product1_0003.png
style1_color2_product2_0004.png
style2_color1_product1_0005.png
任何文件名都不会重复,并且每种款式和颜色总会有不止一种产品。
我要做的是获取这个数组并根据匹配的“样式”和“颜色”值将其拆分为新数组。
我已经打开文件并根据名字和名字拆分新数组,但我找不到分组到新数组的答案。
$Dir = "products";
$files = scandir($Dir);
array_multisort($files, SORT_STRING);
for ($key = 0, $size = count($files); $key < $size; $key++) {
if ($files[$key] != '.' && $files[$key] != '..'){
$new_array[] = explode('_', $files[$key], 3);
}
}
print_r($new_array);
Array ( [0] =>
Array ( [0] => style1 [1] => color1 [2] => product1_0000.png ) [1] =>
Array ( [0] => style1 [1] => color1 [2] => product2_0001.png ) [2] =>
Array ( [0] => style1 [1] => color1 [2] => product2_0002.png ) [3] => )
)
etc
现在我需要与原始数组进行比较和拆分。
任何帮助将不胜感激。
【问题讨论】:
-
一些
foreach循环也是如此。你甚至可以在你当前的for循环中做到这一点 -
提示:你必须寻找SPL函数
FilesystemIteratorrathar而不是scandir或glob