2013-06-04 3 views
3

У меня есть массив с полями/path для значения, которое я хочу использовать (для usort). Ниже вы можете узнать, как я могу получить значение hardcoded. Я просто не могу понять, как это сделать программно. Счетчик $ 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" 
       ) 

     ) 

) 
Смежные вопросы