对于每个阵列组合3个或更多阵列

时间:2016-03-08 18:02:49

标签: php arrays

您好我正在尝试从我的表单中提交一个包含3个文本文件的数组,然后发送到我的数据库,表

我的表格

  <input type="hidden" name="itemqt[]" value="<?php echo $item["quantity"]; ?>">

<input type="hidden" name="itemname[]" id="text-basic" value="<?php echo $item["name"]; ?>">

<input type="hidden" name="itemprice[]" id="text-basic" value="<?php echo $item["price"]; ?>">

基本上当我尝试组合两个数组时,它可以工作

foreach (array_combine($_POST['id'], $_POST['itemprice'] ) as $name => $email)

 {

  echo  "";
  //$name . " - " . $email .
  $ocode = $_POST['ocode'];
  $sql = "INSERT INTO `orders` (pid, price,status,method,ocode, quantity) VALUES ('$name','$email','paid','Card','$ocode','$_POST[itemqt]')";

 if (mysqli_query($con, $sql)) {
      echo "";
    }
     else {
    echo "Error: " . $sql . "<br>" . mysqli_error($con);
}

}

}

}

但是当我尝试将一个3数组与另一个像dis一样的字段组合时,它就失败了。我收到语法错误

foreach (array_combine($_POST['id'], $_POST['itemprice'], $_POST['itemqt'] ) as $name => $email, $qt)

 {

  echo  "";
  //$name . " - " . $email .
  $ocode = $_POST['ocode'];
  $sql = "INSERT INTO `orders` (pid, price,status,method,ocode, quantity) VALUES ('$name','$email','paid','Card','$ocode','$_POST[itemqt]')";

 if (mysqli_query($con, $sql)) {
      echo "";
    }
     else {
    echo "Error: " . $sql . "<br>" . mysqli_error($con);
}

}

}

}

请任何想法,有人成功合并了3个阵列

1 个答案:

答案 0 :(得分:0)

array_combine从2个数组生成结果数组 - 一个用于键,另一个用于值。你期望通过添加第三个数组?它会被添加到键,值?在哪里?

你真正需要的只是某个基本变量的foreach循环,大概是$_POST['id']

$i = 0;
foreach ($_POST['id'] as $id) {
    // get values from other $_POST variables with the same key as $i
    echo $id, ': ', $_POST['itemprice'][$i], ' => ', $_POST['itemqt'][$i];
    $i++;
}

甚至更简单:

foreach ($_POST['id'] as $key => $id) {
    // get values from other $_POST variables with the same key as $key
    echo $id, ': ', $_POST['itemprice'][$key], ' => ', $_POST['itemqt'][$key];
}

当然,您可以查看某个$_POST['itemprice'][$key]是否存在$_POST['itemqt'][$key]$key