【发布时间】:2021-09-11 11:18:40
【问题描述】:
我想用函数控制post来的数据,有数据就更新,没有数据就添加。 我正在使用以下代码进行更新和添加,但在第二次添加中,它既更新了现有信息,又再次添加了相同的信息。
我想知道我在哪里做错了,你能帮帮我吗?
$data = array('sure'=>'1', 'id'=>'38138373','t'=>'6', 's'=>'s3', 'p'=>'6');
function updateCart($data,$user_id,$cartid){
$updateCart = [];
$carts = getCart($user_id,$cartid);
foreach ($carts as $i => $cart) {
if($cart['id'] == $data['id'] && $cart['t'] == $data['t'] && $cart['s'] == $data['s']) {
$newp = $cart['p']+$data['p'];
$carts[$i]['p'] = $newp;
} else {
$carts[] = $data;
}
}
putJson($carts,$user_id,$cartid);
}
/* $carts */
[
{
"sure": "1",
"id": "38138373",
"t": "8",
"s": "s5",
"p": 6
},{
"sure": "1",
"id": "38138373",
"t": "6",
"s": "s3",
"p": 9
}
]
这是函数之后的结果。
[
{
"sure": "1",
"id": "38138373",
"t": "8",
"s": "s5",
"p": 6
},
{
"sure": "1",
"id": "38138373",
"t": "6",
"s": "s3",
"p": 9
},
{
"sure": "1",
"id": "38138373",
"t": "6",
"s": "s3",
"p": 12
},
{
"sure": "1",
"id": "38138373",
"t": "6",
"s": "s3",
"p": "3"
}
]
文件应该是这样的
[
{
"sure": "1",
"id": "38138373",
"t": "8",
"s": "s5",
"p": 6
},
{
"sure": "1",
"id": "38138373",
"t": "6",
"s": "s3",
"p": 15
}
]
【问题讨论】:
-
$carts的内容是什么? -
$carts 拉取json文件,即记录中的数据。
-
您能否发布导致上述输出的
$carts实例。 -
我编辑了题目,居然是上面,“这是函数后的结果。”下面是生成的 json 文件。并且每次添加数据时都会更新