PHP FOREACH有3个或更多数组

时间:2015-02-09 21:11:49

标签: php

我正在尝试设置一个允许我的管理员添加帖子的面板。不只是一个帖子,而是多个帖子。他们可以单击一个按钮,它基本上添加了一些输入标签来添加名称,链接和描述。

但是,我在处理PHP中的$_POST[]值时遇到了一些问题。

我正在做这样的事情:

if(isset($_POST) === true){
    $pNames = $_POST["postName"];
    $pLinks = $_POST["postLink"];
    $pDescs = $_POST["postDesc"];
    foreach ($pNames as $pName) {
         foreach($epLinks as $pLink){
             foreach($pDescs as $pDesc){
                 // do stuff here
             }
         }
    }
}

我的问题是,它基本上是为每个可能的值做的。 (正如预期的那样,我猜)

最好的方法是让所有这些匹配并以我想要的方式工作?

例如,如果我添加了两个帖子,那就像是:

PostName1,PostLink1,PostDescription1

然后PostName2,PostLink2和PostDescription2

我希望将它们全部组合在一起,以便我可以相应地将它们添加到mySQL数据库中。

3 个答案:

答案 0 :(得分:2)

对表单输入使用数组表示法:

<input type="text" name="post[0][postName]" />
<input type="text" name="post[0][postLink]" />
<input type="text" name="post[0][postDesc]" />

如果你可以用这种方式重命名元素,那么循环遍历索引将是其他人所描述的最好的事情。

答案 1 :(得分:1)

假设所有三个数组的大小始终相同:

$size = count($pNames);
for($i = 0; $i < $size; ++$i){
    //do stuff here with $pNames[$i], $pLinks[$i], $pDescs[$i]
}

答案 2 :(得分:0)

如果按键匹配,您可以执行以下操作:

   foreach ($pNames as $key=>$pName) {
     $pLink = $pLinks[$key];
     $pDesc = $pDesc[$key];
     //do stuff here with $pName, $pLink, $pDesc
   }