я получаю ответ от вызова API, который выглядит следующимСоздание каталогов на основе массива значений
Array
(
[_id] => aasdasdasdasdasd
[created] => 2017-01-16T14:11:54.616Z
[options] => Array
(
[title] => 1
[data] => Array
(
[0] => Array
(
[labelName] => Date
[labelValues] => Array
(
[0] => March 2016
)
)
[1] => Array
(
[labelName] => Title
[labelValues] => Array
(
[0] => Food
)
)
[2] => Array
(
[labelName] => Product
[labelValues] => Array
(
[0] => Rice
)
)
)
)
)
я обрабатывать ответ, выполнив следующие действия
$results = array();
foreach ($output['options']['data'] as $data) {
if (isset($data['labelValues'][0])) {
$results[$data['labelName']] = $data['labelValues'][0];
}
}
Это оставляет меня с чем-то по линиям этого
Array
(
[Date] => March 2016
[Title] => Food
[Product] => Rice
)
Ввод в массив не был моим намерением, в основном это было сделано для помогите мне лучше понять цикл, необходимый для обработки исходных данных.
Моя основная цель - создать каталоги из этих значений. Основным каталогом будет дата, внутри которой должно быть Название, и внутри этого должен быть Продукт. Итак, для вышесказанного структура каталогов должна быть чем-то вроде 2016> Food> Rice.
Для того, чтобы достичь этого, я пришел со следующим
foreach ($output['options']['data'] as $data) {
if (isset($data['labelValues'][0])) {
if($data['labelName'] == 'Date') {
if (preg_match('/\b\d{4}\b/', $data['labelValues'][0], $matches)) {
$results[$data['labelName']] = $matches[0];
if (!file_exists($matches[0])) {
mkdir($matches[0], 0777, true);
}
}
}
}
}
Вышеприведенные хорошо работает и создает папку даты для меня. Там, где я боюсь, я теперь создаю папку Title в папке Date, а затем Продукт в заголовке.
Как бы я мог добиться этого?
Большое спасибо
идеально , Есть ли способ сделать регулярное выражение, чтобы сделать его 2016, чтобы не было месяца? –
Я действительно вижу еще одну проблему, которая означает, что мне могут понадобиться петли? Мне нужно создать образ в последнем созданном каталоге. –