Чек parse_str()
:
parse_str('set[0][p1]', $AR);
О, вы хотите получить доступ к индексу массива ... Вот мое мнение:
getValue($AR, array('set', 0, 'p1'));
Или, если вам действительно нужно использовать исходное строковое представление:
parse_str('set[0][p1]', $keys);
getValue($AR, $keys);
Отказ от ответственности: я не проверял это, возможно, вам придется где-то использовать array_keys()
.
И вспомогательная функция:
function getValue($array, $key, $default = false)
{
if (is_array($array) === true)
{
settype($key, 'array');
foreach ($key as $value)
{
if (array_key_exists($value, $array) === false)
{
return $default;
}
$array = $array[$value];
}
return $array;
}
return $default;
}
Я бы не стал заглядывать в эту проблему.