2013-04-18 22 views
1

得到了一個多維數組和一個字符串在配置中,我需要將其轉換爲數組鍵,而不使用eval。真正的世界使用這個問題是,我從mongodb獲得了一個大文檔,轉換成多維數組。不過,我需要從配置文件中定義特定的陣列節點。轉換配置ini像字符串點分隔值到實際的數組鍵

的想法是創建一個配置文件作爲陣列密鑰的層次結構

上的config.ini以下的值是一些示例的表示。

colorattribute = attribute.color 
wholesaleprice = prices.wholesale 

示例響應從MongoDB的

<?php 
$products = array(
       'product_name' => 'iTouch', 
       'brand_name' => 'Apple', 
       'attributes' => array ('color' => 'black', 
             'size' => '5 in' 
            ), 
       'prices' => array(
            'wholesale' => 135, 
            'retail' => 200, 
           ), 
       ); 
+0

你的 「問題」 並沒有太大的意義。你給出的代碼也沒有多大意義。請提供適當的代碼並提供正確的問題 –

+0

對不起,我編輯了我的問題。 tia – lloydm

回答

0
function recurseKeys(array $keys,array $array){ 
    $key = array_shift($keys); 
    if(!isset($array[$key])) return null; 
    return empty($keys) ? 
     $array[$key]: 
     recurseKeys($keys,$array[$key]; 
} 

var_dump(recurseKeys(explode('.',$testConfig),$products); 
+0

謝謝!這是我需要的一個:) – lloydm

相關問題