2011-09-27 87 views
0

我有這個數組,並且我無法弄清楚如何解剖它並將其構建到自身上。如何將每個數值從同一個數組複製到每個鍵上

我編我的陣列我想可能是最容易保持跟蹤:

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)

其中$缺口或者是'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來然後把它分解得到pathini鍵=>值,則內置解析ini文件的功能。但正如我所說,我的ini鍵之一擁有一個陣列,所以我不知道如何循環,而仍然能夠解析一個ini文件,而不是覆蓋持有人變量$built

任何幫助將真正被讚賞!

+0

在註釋掉的代碼中,你有'is_array'的正確思路。如何在單個文件與多個文件的情況下查看最終結果?在第二種情況下'$ built'是否應該包含一個輸出數組? – mellamokb

+0

$ built保存解析的ini數組,類似於'$ build = parse_ini_file(path.ini,true)',其中路徑與ini值連接。所以'parse_ini_file(/var/www/config/common.ini,true)'然後'parse_ini_file(/var/www/config/db.ini,true)'等等。 – Eli

回答

0

你必須先去閱讀遞歸。只要在Google或維基百科上輸入這個詞,你就會明白。或者只需要尋找http://php.net的array_merge和array_merge_recursive,那就是你需要的。但是,無論如何,首先閱讀關於遞歸的知識,如果您要進一步編寫代碼,您應該知道這些基本的東西。

相關問題