我已經構建了一個空的關聯數組,它的鍵名引用了提交的發佈數據。我可以很好地捕獲postdata,但遇到麻煩時嘗試實例化名稱與數組鍵匹配的變量。使用foreach循環來初始化變量
例如:
$insArray = array('rUsername'=>'', 'rPass'=>'', 'rQuestion'=>'', 'rAnswer'=>'', 'rFName'=>'', 'rLName'=>'', 'rBDateD'=>'', 'rBDateM'=>'', 'rBDateY'=>'', 'rHCheck'=>'', 'rHCeckOption'=>'', 'rEmail'=>'');
foreach($insArray as $key=>$value){
if (filter_input(INPUT_POST, $key) != ''){
$key = stripslashes(filter_input(INPUT_POST, $key));
$insArray[$key] = $key;
}
}
第一行創建的空數組,然後在foreach通過此數組環路。現在變得棘手。
filter_input(INPUT_POST, $key)
捕獲位於後數據匹配當前鍵,rUsername在這種情況下
$key
是問題所在的值。我希望新變量的名稱是關聯鍵名,例如我想在第一次迭代中用$ rUsername替換$ key,在第二次中用$ rPass替換,等等。我嘗試使用兩個$$,但我知道這是不對的。以前從來沒有嘗試過這樣做,但如果我能弄清楚它會有所幫助。
UPDATE:
這是最後的代碼是兩個提供的答覆的組合。
if (isset($_POST['submit'])) {
//Build array of variables to be put into database
$insArray = array('rUsername'=>'', 'rPassword'=>'', 'rQuestion'=>'', 'rAnswer'=>'', 'rFName'=>'', 'rLName'=>'', 'rBDateD'=>'', 'rBDateM'=>'', 'rBDateY'=>'', 'rHCheck'=>'', 'rHCheckOption'=>'', 'rEmail'=>'');
foreach(array_keys($insArray) as $key){
$insArray[$key] = filter_input(INPUT_POST, $key);
$$key = filter_input(INPUT_POST, $key);
}
}
給我完全我想要的輸出,謝謝你們!
那麼什麼是你得到 – Satya