【问题标题】:Compare array values from one array PHP比较一个数组 PHP 中的数组值
【发布时间】:2013-12-12 12:44:28
【问题描述】:

注意:

我是 php 和 mysql 的新手。

背景信息:

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

假设我有 1 个产品,三个供应商有它,我需要发布价格最低的产品,而另外两个产品保持未发布状态

基本思路就是这个,这个要跑遍30000个产品,看看有没有匹配的,运行发布功能

SQL 设置:

有两个表xxxx_virtuemart_productxxxx_virtuemart_product_prices

xxxx_virtuemart_product ▬▬▬ product_id,product_sku,published ▬▬▬一共有三行

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

}

谁能帮我解决这个问题?

感谢阅读

欢迎提出任何问题。

【问题讨论】:

标签: php mysql sql arrays


【解决方案1】:

您的问题不在于比较数组,而在于更多算法。 我会尝试这种方式。 1)SQL查询检索所有产品:sql_products 2)构建一个哈希图,其中关键是产品SKU(参见:PHP Array

要构造 PHP 哈希图:使用数组的数组。 例子 : product_map[] = array();

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

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

现在你有一张产品图:SKU => array(of array (supplier, price, information))

【讨论】:

  • 谢谢 Yoong kim,会调查的。
  • 代替添加和排序数组,您可以检查是否将带有 SKU 的产品添加到数组中并将价格与当前价格进行比较。如果较低,则将 id 添加到单独的数组中以稍后取消发布它们。如果大于则 replece 加上 current 等等。
  • Yoong Kim,你的意思是这样吗 - 数组结构 - product_sku => 供应商 => 然后我运行一个 foreach 和 if 语句来查看最低价格并运行查询来更改三个供应商的价格发布值?
猜你喜欢
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多