php数组通过变量数组获取多维值

时间:2013-06-04 08:16:58

标签: php arrays

我有一个数组,其中包含我想要使用的值的字段/路径(对于usort)。下面你可以找到我如何获得硬编码的价值。我只是无法弄清楚如何以编程方式创建它。 $ arrOrderBy的计数是可变的。所以我可能不得不使用foreach?

这是我的数组顺序:

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

此值:

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

必须结果:

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

此致

2 个答案:

答案 0 :(得分:1)

试试这个:

$value = $a;

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

答案 1 :(得分: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"
                )

        )

)