php:在foreach循环中使用不同的数组

时间:2015-08-15 10:05:15

标签: php arrays codeigniter foreach

我有3个可以动态添加的输入。所以输入的name是数组,如:

<input type="text" name="qty1[]">
<input type="text" name="qty2[]">
<input type="text" name="qty3[]">

(这些输入文本中的每一个都可以通过javascript生成)

在我的php文件中,我得到它们并希望插入数据库(我的控制器在codeigniter中):

$address = $this->input->post("qty1");
$LocX =    $this->input->post("qty2");
$LocY =    $this->input->post("qty3");

在我的数据库部分中,我想使用foreach并添加到数据库:

修改

foreach ($address as $key) {
  // I want to add $LocX and $LocY to the table
  // LocX and LocY are column names.
  $query = $this->db->query("INSERT INTO address (Comp_ID, Value, LocX, LocY)
                             VALUES(?, ?)", array($Comp_ID, $key ,? ,?));
}

我想将所有这些作为参数添加到foreach中。当我搜索它是不可能的。我该怎么办?感谢。

EDIT2

数组的结果,例如$LocX

Array
(
  [0] => test1
  [1] => test2
  [2] => test3
)

2 个答案:

答案 0 :(得分:1)

您可以使用foreach中的索引来获取其他元素。但是您需要仔细检查其他数组中是否存在索引值(isset check)

例如:

foreach ($address as $key => $value) {
  if(isset($LocX[$key], $LocY[$key]) {
      $a_LocX = $LocX[$key]; // This will be the locx of the address
      $a_LocY = $LocY[$key]; // This will be the locy of the address

      // Change your query to fit the table and fill in the locx and y.
      $query = $this->db->query("INSERT INTO address (Comp_ID, Value)
                             VALUES(?, ?)", array($Comp_ID, $key));
}

答案 1 :(得分:1)

您也可以使用for循环。

$address = $this->input->post("qty1");
$LocX =    $this->input->post("qty2");
$LocY =    $this->input->post("qty3");

$n=count($address);
for($i=0;$i<$n;$i++){
       $a=$address[$i];
       $x=$locX[$i];
       $y=$locY[$i];
       //insert here
}