2014-09-28 68 views
1

我想给每个帖子值增加一个变量名称,并使用分配的变量和构建数组。以下是我试过

$list = array(); 
$x = 0; 
$prefix = '$var_'; 

foreach(array_slice($_POST, 1) as $test){ 
    $x++; 
    $list[] = "{$prefix}{$x} = {$test};": 
} 

echo implode(" ", $list); 

所以,如果我在后有4个值,比如0, a, b, c它会回应像

$var_1 = a; $var_2 = b; $var_3 = c; 

东西,我希望把所有三个$瓦尔在阵列状下面并使用它们的值。这是我卡住的地方。任何帮助?

$vars = array($var_1, $var_2, $var_3) 

我试图做到的,是插入动态数据表,我只知道TABLE_NAME,

$stmt = $mydb->prepare($sql);//I am able to populate the $sql and $str 
$stmt->bind_param($str, $vars); 
$stmt->execute(); 
+4

我敢打赌,你真的不想这样做。请解释你想达到的目标。几乎肯定有更好的方法来做到这一点。 – RiggsFolly 2014-09-28 18:07:41

+0

@RiggsFolly查看编辑。 – user2666310 2014-09-28 18:19:02

回答

0

做(无安全性)

的坏和肮脏的方式
$list = implode(" ", $list); 
eval($list) 

现在,您已经定义了$ var_1,$ var_2。 :)

当心,eval是危险的,不要使用它。

0

可以实现与列表第一部分:如本例PHP Assign array to variables

你可以跳过这一切,做这样的事情:

$vars = $_POST 

,并使用数组作为-是(ovbiously你需要在此之前来净化你的数据

,或者你可以从这些方法挑选: Fastest way to add prefix to array keys?

您也可以邮寄的形式数组(如果它的形式,这就是填充你的POST)看到这个问题的答案后Posting array from form

然后,你可以这样做:

$vars = $_POST['data_array_name']; 

(和消毒太)

1

我相信你正在寻找的extract()功能:

$list = array(); 
$prefix = 'var_'; 
$_POST = array("TEST",1,2,3,"XYZ"); // post example 

$x = 0; 
foreach(array_slice($_POST, 0) as $test) { 
    $x++; 
    $list[$prefix.$x] = "{$test}"; 
} 
extract($list); 
echo $var_1; // outputs TEST 

// print_r($list); 

/* 
Array 
(
    [var_1] => TEST 
    [var_2] => 1 
    [var_3] => 2 
    [var_4] => 3 
    [var_5] => XYZ 
) 
*/ 

*至尊应谨慎行事当使用功能$_POST$_GET,$_FILES

相关问题