【发布时间】:2018-11-29 14:20:47
【问题描述】:
解析数组时遇到问题..
这是来自 $_GET var 的转储
Array
(
[perm0] => Array
(
[0] => View
[1] => Add
[2] => Edit
[3] => Delete
[4] => Export
)
[perm1] => Array
(
[0] => View
[1] => Add
[2] => Export
)
[add] =>
)
当我尝试使用 foreach 插入数据库时,它只插入第一项。 我需要根据 perm[] 值添加数字,例如 perm0、perm1 等
这是我的代码
$i = 0;
$id = 0;
foreach($_GET['perm'.$i] as $permission)
{
do {
$perms = implode(":",$_GET['perm'.$i]);
mysqli_query($dbc,"INSERT INTO `permissions` (`mid`,`uid`,`permissions`) VALUES ('$id','99','$perms')");
echo mysqli_error($dbc);
} while(strpos($permission, $i) !== false);
$id++;
$i++;
}
我原以为这会很简单,所以我不知道为什么会遇到问题
【问题讨论】:
-
[from cmets] “还有其他表单字段因此不起作用,因此 $_GET['perm'.$i]” - 可以通过命名以不同的方式形成字段……
name="perm[0][]"、name="perm[1][]",然后您会在$_GET['perm']中获得一个多维数组,您可以遍历该数组,而无需自己组装正确的访问密钥。