次の内容の配列 $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」) を選択します。$std->arrayName[key1][key2] を選択したくないので、「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];
したがって、私の質問は次のとおりです。最初の配列 (arrayName) のキーとして機能する別の配列 ($params) で定義された値によって、特定の配列 (arrayName) の値を選択するにはどうすればよいですか。ただし、キーの量 ($params の値) はオプションです。
質問が完全に理解できないかもしれませんので、お気軽に詳細をお尋ねください。