如何使两个阵列之间的区别的阵列?

问题描述 投票:1回答:1

我想提出一个在线购物车。所以我想确认我的产品后,更新我的股票总...我能够从用户捕捉的数量,我能够从MYSQL抓住我的数据。现在,我要让我从MYSQL量和用户量之间的差值的阵列和购买后更新我的股票总...

我的MySQL阵列输出为:

的print_r($数量);

Array ( [0] => Array ( [stock] => 100 ) [1] => Array ( [stock] => 100 ) [2] => Array ( [stock] => 50 ) [3] => Array ( [stock] => 100 ) )

我的用户阵列输出为:

的print_r($ _SESSION [ 'productqty']);

Array ( [0] => 10 [1] => 12 [2] => 14 [3] => 16 )

我想打一个阵列,这将是像

Array ( [0] => 90 [1] => 88 [2] => 36 [3] => 84 )

该阵列是两个阵列之间的差异,它会在mysqli的查询...我已经试过各种更新。请帮我...

php mysqli
1个回答
2
投票

如果索引等于下面的代码可以工作:

$remaining = [];

// iterate $qty rows and fill $remaining array
foreach($qty as $index => $entry) {
    $remaining[] = $entry['stock'] - $_SESSION['productqty'][$index];
}

var_dump($remaining);

编辑:存放在数据库中更新股票

首先有必要选择在第一个查询产品的ID,这样您能够更新它们。这一步应该会导致以下转储(除了正确的ID)

Array ( 
    [0] => Array ( [id] => 12, [stock] => 100 ) 
    [1] => Array ( [id] => 37, [stock] => 100 ) 
    [2] => Array ( [id] => 39, [stock] => 50 ) 
    [3] => Array ( [id] => 50, [stock] => 100 ) 
)

现在,你可以通过产品的IDS安装到你的阵列优化您的计算:

remaining = [];

foreach($qty as $index => $entry) {
    $remaining[] = [
        'id_product' => $entry['id'],
        'stock' => $entry['stock'] - $_SESSION['productqty'][$index]
    ];
}

现在,你可以存储你更新的股票:

foreach($remaining as $entry) {
    // Perform your SQL-Operation, something like:
    // UPDATE products SET stock = $entry['stock'] WHERE id = '$entry['id']
}

注意:请确保您对SQL-注射应用。看看:https://en.wikipedia.org/wiki/SQL_injection

© www.soinside.com 2019 - 2024. All rights reserved.