比较来自一个PHP数组的数组值

时间:2013-12-12 12:44:28

标签: php mysql sql arrays

注意:

我是php和mysql的新手。

背景信息:

我有+/- 30,000种产品,他们来自7个不同的供应商,他们有很多相同的产品

假设我有1个产品,其中有3个供应商拥有它,我需要以最低价格发布产品,而另外两个产品保持未发布

这是基本的想法,这必须贯穿30,000个产品并检查是否有任何匹配并运行发布功能

SQL设置:

有两个表 xxxx_virtuemart_product xxxx_virtuemart_product_prices

xxxx_virtuemart_product中有三行▬▬▬product_id,product_sku,已发布▬▬▬

xxxx_virtuemart_product_prices中有两行▬▬▬product_id,product_price▬▬▬

我的一点代码:

我有这个小代码,因为我卡住了,我如何检查是否有任何匹配,然后运行查询以更低价格更改产品的公布值?

我知道有一种方法可以使用查询来检查匹配,但不明白该怎么做

$query = "SELECT `product_sku` FROM `xxxx_virtuemart_product`";
$query_run = mysql_query($query) or die (mysql_error());

while($row = mysql_fetch_assoc($query_run)){
    foreach ($row as $key => $ps){

    }
}

以下代码是检查价格(不是查询只是粗略草稿)

$z = //products price;
$x = //products price;
$c = //products price;

if ($z >= $x && $c >= $x) {

    //the this products published value to 1

}else if ($x >= $z && $c >= $z) {

    //the this products published value to 1

}else if ($z >= $c && $x >= $c) {

    //the this products published value to 1

}

有人可以帮我解决这个问题吗?

感谢您阅读

欢迎任何问题。

1 个答案:

答案 0 :(得分:0)

您的问题不是要比较数组而是更多算法。 我会这样试试。 1)SQL查询检索所有产品:sql_products 2)构造一个hashmap,那些密钥是产品SKU(参见:PHP Array

构造PHP hashmap:使用数组数组。 示例: product_map [] = array();

foreach sql_product的sql_products:   - product_map [sql_product [SKU]] [] = array(sql_product [supplier],sql_product [price],sql_product [information]) 循环结束

然后在构建的产品图上再次循环,并按价格对每个产品记录进行排序:这意味着您必须编写一个函数来排序数组(供应商,价格,信息)。

现在您有一张产品地图:SKU =>数组(数组(供应商,价格,信息))