我有一个包含以下内容的数组 $params:
Array(
0 => "array"
1 => "arrayName" //variable
2 => "key1" //optional&variable ie. 0 or 'foo'
3 => "key2" //optional&variable ie. 0 or 'foo'
//etc.
)
另外,我有一个 stdObject ,其中包含正在请求的页面的所有变量(MVC 样式)。所以,我可以在那里有一个这样的数组:
$std = new stdObject();
$std->arrayName->array('foo', 'bar');
现在我想要 $std 数组的第一个值。因此,我在 $params 中使用“key1”参数并将其设置为“0”,因此它将选择 $std->arrayName[0] 值(“foo”)。请注意,我没有使用“key2”参数,因为我不想选择 $std->arrayName[key1][key2]。
但是如果我需要嵌套数组的值怎么办?
$std = new stdObject();
$std->arrayName->array('foo', array('bar', 'fish'));
我将通过将“key1”参数设置为 1 并将“key2”参数设置为 1 来请求 $std->arrayName[1][1] 值('fish')。所以它会选择$std->arrayName[key1][key2]。
但是如果我有 10 个相互嵌套的数组呢?极不可能,但有可能。我想选择 $std->arrayName[key1][key2][key3][..][key10] 来选择位于那里的某个值。例如:$std->arrayName[0][3][4][6][2][9]['foo']['bar][9][2];
所以我的问题是:如何通过另一个数组 ($params) 中定义的值来选择某个数组 (arrayName) 的值,该数组充当第一个数组 (arrayName) 的键。但是,键的数量($params 中的值)是可选的。
也许这个问题并不完全可以理解,所以请随时询问更多信息。