2013-06-04 53 views
3

我有一個數組,其中包含字段/路徑以指向我想要使用的值(用於usort)。下面你可以找到我如何獲得硬編碼的價值。我只是無法弄清楚如何以編程方式創建。 $ arrOrderBy的數量是可變的。所以我可能必須使用foreach?php array通過變量數組獲取多維值

這是我的命令由數組:

$arrOrderBy = array(
    0 => 'GameObject', 
    1 => 'Question', 
    2 => '0', 
    3 => 'title' 
) 

此值:

$a[$arrOrderBy[0]][$arrOrderBy[1]][$arrOrderBy[2]][$arrOrderBy[3]]; 

有結果到:

$a['GameObject']['Question'][0]['title'] 

問候,

+1

只是說,即'$數組[0]'是不一樣的作爲'$ array ['0']'。 – vikingmaster

+0

PHP似乎不在乎:)。 –

回答

1

試試這個:

$value = $a; 

foreach ($arrOrderBy as $orderBy) 
{ 
    $value = $value[$orderBy]; 
} 
+0

非常感謝! –

0

也可以使用下面的模式改變字段的值:

$arrOrderBy = array(
    0 => 'GameObject', 
    1 => 'Question', 
    2 => '0', 
    3 => 'title' 
); 

$a = array(
    'foo' => array (
     'bar' => array (
       'baz' => null 
     ) 
    ) 
); 

$v =& $a; 
foreach ($arrOrderBy as $k => $breadcrumb) 
{ 
    $v =& $v[$breadcrumb]; 
} 
$v = 'anything you want'; 

print_r ($a); 

輸出:

Array 
(
    [foo] => Array 
     (
      [bar] => Array 
       (
        [baz] => "anything you want" 
       ) 

     ) 

)