根据数组值

时间:2017-01-18 11:05:36

标签: php arrays directory

我从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
)

将它放入数组并不是我的意图,主要是为了帮助我更好地理解处理原始数据所需的循环。

我的主要目的是从这些值创建目录。主目录将是Date,其中应该是Title,其中应该是Product。因此,对于上述内容,目录结构应该类似2016>食物>稻。

为了达到这个目的,我提出了以下内容

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。

我将如何实现这一目标?

非常感谢

1 个答案:

答案 0 :(得分:1)

我喜欢你创建的数组:

$array = array ( [Date] => March 2016 [Title] => Food [Product] => Rice )

简单地破坏道路:

mkdir(implode('/', $array), 0777, true);

这将创建所有目录March 2016/Food/Rice