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 に答える