如何将同一数组中的每个值放到每个键上

时间:2011-09-27 01:09:32

标签: php arrays class

我有这个阵列,我无法弄清楚如何剖析它并将其建立在自身上。

我已将我的数组编译为我认为最容易跟踪的数据:

Array
(
    [domain.com] => Array
        (
            [dev] => Array
                (
                    [path] => /var/www/config/
                    [ini] => Array
                        (
                            [0] => db
                            [1] => common
                        )

                )

            [theme] => Array
                (
                    [path] => /var/ww/themes/
                    [ini] => theme
                )

        )

)

我的全部内容是我想创建一个帮助类来解析ini文件。所以我通过几种方法能够像上面那样构建我的数组。

我的最终目标是parse_ini_file($ini[$domain][$nick][path] . $ini[$domain][$nick][ini] . ".ini", true)

其中$ nick是'dev''theme',这只是我区分属于一起的路径和ini的方式。

我试图在每个键值对中进行foreach循环,但我坚持认为我的一个值包含一个数组。

foreach (self::$ini[$domain] as $k => $v) {
    //if (self::$ini[$domina][$nick]['path'][$k] === self::$ini[$domain][$nick]['ini'][$k])
        foreach (self::$ini[$domain][$k] as $i => $l) {

            foreach ($l as $m => $n)
                //if (!is_array($i)) {

                   // (strlen($i) - 1 === '/' ? $i : $i . '/');
                    echo $n;
                    //self::$built = parse_ini_file($i . $j, true);
                //}
            }
}

它可能看起来像一团糟,但我没有打算制作有意义的变量名称,直到我能够制作一个可靠的代码块。但是在我的尝试中,我已经通过foreach数组进行$domain循环,从那里提取每个$nick我想再做一次foreach然后将其分解以获得{ {1}}和path key =>值然后构建解析ini文件函数。但就像我说的那样,我的一个ini密钥包含一个数组,所以我不知道如何循环使用,同时仍然能够解析一个ini文件而不是覆盖持有者变量ini

真的很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

您必须先阅读有关递归的内容。只需在Google或甚至维基百科中输入单词,您就会明白这一点。或者只需在http://php.net查找array_merge和array_merge_recursive,这就是您所需要的。但是,无论如何,首先阅读有关递归的内容,如果你要进一步编写代码,你应该知道这些基本的东西。