use*_*310 2 php forms multidimensional-array
我试图将两个成对的变量、一个类别及其多个用户创建的类别的 id 从网络表单传递到一个文件进行处理。我想让它们保持链接,所以如果有人更改了名称字段,我们很清楚他们正在更改什么记录,因为该记录通过 id 链接到其他表。
最初尝试二维数组......已经放弃了这种方法。现在尝试按照下面的建议使用两个一维数组。我要使用数组,因为表单上的条目数取决于用户创建的类别数。Categories 表有 id(int)、cat(text) 和 userid(int) 字段
传递两个数组的难点在于如何将两者联系起来。如果我将类别作为数组传递给接收页面,我可以遍历值以生成 sql 语句来更改每个条目。但是,我无法弄清楚如何获得识别记录所需的正确 id。如果我在 foreach(catsarray as $val) 中使用 foreach($idarray as $id),我将为每只猫获得多个 id。如何迭代 id 与迭代 cat 同步?非常感谢您的帮助,因为我现在已经花了两天的时间:(
//I am working with $catsarray and $idarray, each with identical indexes, 1,2,3 etc.
//How do I get appropriate id for each cat
foreach($catsarray as $val) {
$sql = "UPDATE cats, set name = $val WHERE (userid ='$userid' AND id=??????)";
mysql_query($sql);
}
Run Code Online (Sandbox Code Playgroud)
用于创建二维数组的良好且单一的语法;
<input type="text" name="cat[]" value="cat1">
<input type="text" name="cat[]" value="cat2">
...
Run Code Online (Sandbox Code Playgroud)
在接收猫时;
echo $_POST['cat'][0] // echoes cat1
echo $_POST['cat'][1] // echoes cat2
Run Code Online (Sandbox Code Playgroud)
进一步的例子;
根据这个定义,
<input type="text" name="cat[$cat][$id]" value="cat1">
foreach ($_POST['cat'] as $a=>$b){
// $a == $cat
foreach($b as $c=>$d) {
// $c == $id
}
}
Run Code Online (Sandbox Code Playgroud)