【发布时间】:2017-01-18 11:05:36
【问题描述】:
我从 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);
}
}
}
}
}
上面的工作很好,并为我创建了日期文件夹。我苦苦挣扎的地方是我现在如何在 Date 文件夹中创建 Title 文件夹,然后在 Title 中创建 Product。
我将如何实现这一目标?
非常感谢
【问题讨论】: