我有一个来自POST的多维数组;
array(4) {
["id"]=> array(3) {
[0]=> string(1) "4"
[1]=> string(1) "5"
[2]=> string(1) "6"
}
["deliverer"]=> array(3) {
[0]=> string(13) "x"
[1]=> string(12) "y"
[2]=> string(5) "z"
}
["num_users"]=> array(3) {
[0]=> string(2) "10"
[1]=> string(2) "10"
[2]=> string(1) "5"
}
["ADD"]=> string(6) "FORWARD"
}
我想将ID与" deliveryrer"和#34; num_users"为了更新MySQL中的表。我试过这种方式:
foreach ($_POST as $data){
var_dump($data);
}
和
foreach ($_POST as $key=>$value){
var_dump($value);
}
但在这两种情况下我都没有朝着正确的方向前进。我不是那么熟练所以我希望得到一些关于如何正确进行的提示。
亲切的问候,
克里斯
答案 0 :(得分:1)
$ids = $_POST['id'];
$deliverer = array();
$num_users = array();
$num_usersRaw = $_POST['num_users'];
$i=0;
foreach ($_POST['deliverer'] as $k=>$v) {
$id = $ids[$i];
$deliverer[$id] = $v;
$num_users[$id] = $num_usersRaw[$i];
++$i;
}
说明:
首先获取所有ID。
这将作为deliverer
和num_rows
数组的键。
循环$_POST['deliverer']
,然后为两个数组分配键值:$deliverer
和$num_users
。
答案 1 :(得分:0)
这是一个潜在的解决方案,取决于您最终想要的内容。
$datas = array();
foreach ($_POST['id'] as $k => $id) {
$datas[] = array("id" => $id, "deliverer" => $_POST['deliverer'][$k], "num_users" => $_POST['num_users'][$k]);
}
“更易于理解”的解决方案将是:
$datas = array();
foreach ($_POST['id'] as $k => $id) {
$datas[$k]['id'] = $id; // or $_POST['id'][$k]
$datas[$k]['deliverer'] = $_POST['deliverer'][$k];
$datas[$k]['num_users'] = $_POST['num_users'][$k];
}