Этот массив устанавливается с использованием имен файлов в данной папке. Мои имена файлов будут в следующем формате:Разделение массива PHP путем сопоставления имен переменных
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 [' FilesystemIterator'] (http://php.net/manual/en/class.filesystemiterator.php) rathar, чем 'scandir' или 'glob' – diEcho