PHP:多维数组中字段值的字符串名称


PHP: String name for field value in a multi-dimentional array

我有一个表单字段的名称,看起来像formname[fieldname][value]。经过一些处理后,文本字段位于如下所示的数组中:

    $formname = array (
        'something' => array(),
        'somethingelse' => array(),
        'fieldname' => array (
            'type' => 'text',
            'value' => 'The string I want to retrieve.'
        )
    )

是否有一个简单的方法来使用该字符串名称,以获得该数组的值?

我已经尝试使用字符串作为一个"可变变量"(即$$formname[fieldname][value]),但它没有工作与数组。

如果你有一个变量的形式的名称,如$myForm = 'contactForm';和你动态创建变量$contactForm与所有的数据在里面你可以使用它来访问你需要的数据,如:

$contactForm = ["has" => ["dogs" => "perros"]];
$formName = "contactForm";
$key1 = "has";
$key2 = "dogs";
echo $$formName[$key1][$key2]; // Output Perros.

如果你想迭代值,你有几种方法,for, while, foreach…下面是一个例子:

foreach($$formName as $key => $value {
    echo $key . ": ". $value; //be carefull, this value could be an array.
}

如果你知道你在做什么就可以了,否则我不建议动态创建变量。与HHVM不兼容,并且可能难以追踪。