将数组元素转换为变量

时间:2012-12-25 15:44:18

标签: php arrays variables

鉴于,

$required_fields = array('name', 'location', 'email');                               
foreach ($required_fields as $fieldname) {
    if (isset($_POST[$fieldname]) || !empty($_POST[$fieldname])) {      


        }

现在在if语句中,我需要像

这样的东西
$fieldname = $_POST[$fieldname]; 

所以我得到了

$ name =“name”,$ location =“location”和$ email =“email”

我试过$ fieldname = $ _POST [$ fieldname]但它不起作用。我怎么能动态地做到这一点?

4 个答案:

答案 0 :(得分:9)

你这样做,

$$fieldname = $_POST[$fieldname]; 

$$表示法称为variable variable

答案 1 :(得分:3)

您可以使用extract function。要过滤数组,您可以使用array_diff function

答案 2 :(得分:1)

$required_fields = array('name', 'location', 'email');
extract(array_intersect_keys($_POST, array_flip($required_fields)));

这将为$required_fields中命名的每个变量创建局部变量,只有它存在于$ _POST数组中。否则,变量将是未定义的。

array_flip
array_intersect_key
extract

答案 3 :(得分:-2)

您也可以使用

eval("$".$fieldname."='".$_POST["fieldname"]."';");