0

我正在开发一个应用程序,该应用程序有一个模块,该模块需要根据一组以前的销售排名数据来定义一个项目在亚马逊上上市的可能性有多大。如果您不熟悉亚马逊销售排名,它本质上是为亚马逊上所有商品定义的一个数字,用于将该商品当前看到的与该类别中的所有其他商品相关的先前销售额排名。这是一个专有数字,但它本质上意味着销量排名第一的产品目前在 Amazon.com 上销售的副本最多,而 1,000,000 的销量排名意味着还有 999,999 件其他商品的销量更高。

我有一个数据集,其中包含之前几个月的销售排名;每天一个这样:

$previousranks = array(
    array('1/4/2010',567),
    array('1/5/2010',674),
    array('1/6/2010',505),
    array('1/6/2010',343),
    array('1/6/2010',578),
    array('1/6/2010',789),
    array('1/6/2010',1012),
);

我还可以比较当前的销售排名。我想知道这个项目是否在需求图的“低谷”中。如果您将这些排名绘制在 XY 轴上,日期为 X 轴,销售排名为 Y 轴,我指的是“低谷”。如果这有意义的话,我需要这个函数来决定它是否在它的过去历史中的低销售排名中。

编辑:例如,从上面的数组中,我需要知道当前的销售排名是否介于 505 和 578 之间。那将是“低谷”。我不太明白的是如何定义“低谷”,因为范围不会一直相同。

4

1 回答 1

0

我希望,我理解你的问题。您想确定,该项目是否曾经有比当前更高的销售排名(= 更低的销售额)?

您可以按销售排名的降序对数组进行排序。然后将第一个数组条目(具有最高销售排名)与您当前的销售排名进行比较。

要对多维数组进行排序(在本例中,按过去的销售排名降序排列),请使用usort,您可以在其中定义自己的比较函数:

function mySort($a, $b) 
{
    return $b[1] - $a[1];
}

usort($previousranks, 'mySort');
if($currentrank > $previousranks[0][1])
    // current sales rank highest, do something
于 2012-06-25T06:43:27.760 回答