我正在将我的多维后变量转换为动态变量,如下所示:
foreach($_POST as $k => $v){
${$k} = $v;
}
所以我的新数组看起来像这样:
Array(
[name] => Joe
[surname] => Blogs
[study] => Array
(
[0] => English
[1] => IT
)
[school] => Array
(
[0] => Array
(
[0] => Some School Name
[1] => 03/09/2015
[2] => Present
)
)
)
因此,如果我想获取学校名称,此代码将起作用:
echo $school[0][0];
但是,我很难在如下的 sql 语句中使用这个变量:
$sql = "INSERT INTO table (name, surname, subject_1, subject_2, school1_name, school1_datefrom, school1_dateto) VALUES ('$name', '$surname', '$subject[0]', '$subject[1]', '$school[0][0]', '$school[0][1]', '$school[0][2]', '$school[0][3]')";
echo $sql;
所有不是数组或单级数组的变量,如 study
都显示正常,但学校变量如 $school[0][0]
显示为'数组[0]'、'数组[1]'…………
为什么要这样做,是否可以让这些变量正确显示?
最佳答案
如果您将数组值包装在 {}
中,那么它应该可以正常工作。我不记得这背后的原因,但试试吧。
$sql = "INSERT INTO table (name, surname, subject_1, subject_2,
school1_name, school1_datefrom,
school1_dateto)
VALUES ('$name', '$surname', '{$subject[0]}',
'{$subject[1]}', '{$school[0][0]}',
'{$school[0][1]', '{$school[0][2]}',
'{$school[0][3]}')";
我记得现在叫 Complex (curly) syntax
不是因为语法复杂,而是因为它允许使用复杂的表达式。
关于php - 如何添加或显示动态数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32397685/