2014-09-28 23 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

相關問題