3

我有一个数组,其中包含我想要使用的值的字段/路径(用于 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']

问候,

4

2 回答 2

1

尝试这个:

$value = $a;

foreach ($arrOrderBy as $orderBy)
{
    $value = $value[$orderBy];
}
于 2013-06-04T08:25:18.713 回答
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"
                )

        )

)
于 2013-06-04T08:35:19.087 回答