PHP从表单传递和接收二维数组

PHP从表单传递和接收二维数组,php,forms,multidimensional-array,Php,Forms,Multidimensional Array,我试图将两个成对的变量,一个类别及其id(用于多个用户创建的类别)从webform传递到一个文件进行处理。我想让它们保持链接,这样如果有人更改了name字段,我们就可以清楚地知道他们正在更改什么记录,因为该记录是通过id链接到其他表的 最初尝试二维数组…已经放弃了这种方法。现在按照下面的建议尝试使用两个一维数组。我使用数组是因为表单上的条目数取决于用户创建的类别数。Categories表有id(int)、cat(text)和userid(int)字段 传递两个数组的困难在于如何链接这两个数组。若

我试图将两个成对的变量,一个类别及其id(用于多个用户创建的类别)从webform传递到一个文件进行处理。我想让它们保持链接,这样如果有人更改了name字段,我们就可以清楚地知道他们正在更改什么记录,因为该记录是通过id链接到其他表的

最初尝试二维数组…已经放弃了这种方法。现在按照下面的建议尝试使用两个一维数组。我使用数组是因为表单上的条目数取决于用户创建的类别数。Categories表有id(int)、cat(text)和userid(int)字段

传递两个数组的困难在于如何链接这两个数组。若我将类别作为数组传递给接收页面,那个么我可以遍历值以生成sql语句来更改每个条目。然而,我不知道如何获得识别记录所需的正确id。如果我在foreach(catsarray作为$val)中使用foreach($idarray作为$id),我将为每只猫获得多个id。我如何与遍历cats同步遍历ids?非常感谢您的帮助,因为我已经为此花了两天时间:(


用于创建二维数组的良好且单一的语法

  <input type="text" name="cat[]" value="cat1">
  <input type="text" name="cat[]" value="cat2">
    ...
进一步举例

根据这个定义,

<input type="text" name="cat[$cat][$id]" value="cat1">

foreach ($_POST['cat'] as $a=>$b){
    // $a == $cat
    foreach($b as $c=>$d) {
       // $c == $id
    }
}

foreach($_POST['cat']作为$a=>$b){
//$a==$cat
foreach($b为$c=>$d){
//$c==$id
}
}

同意@miqbal,而不是尝试在二维数组中同时包含cat和id,只需创建两个一维数组,一个用于cat,另一个用于id。然后在POST端将这两个数组循环在一起。使用第二个示例的变体,$b代替一维数组中的$val,以便我可以根据需要调用$a或$b?Many thx!
$a=>$b
表示key=>value。我们的key是要发送到服务器的$cat和$id。注意
$b
是属于$a类别的id数组。为了更容易理解,请将表单设计为第二个示例,并参见
打印($\u POST['cat'))
我打印出来了。这样我就可以分别使用$a和$c作为cat和id?使用您的确切语法$a echocks$cat和$c echocks数组。建议?
echo $_POST['cat'][0] // echoes cat1
echo $_POST['cat'][1] // echoes cat2
<input type="text" name="cat[$cat][$id]" value="cat1">

foreach ($_POST['cat'] as $a=>$b){
    // $a == $cat
    foreach($b as $c=>$d) {
       // $c == $id
    }
}