0

以前の一連の販売ランク データに基づいて、Amazon に出品された場合にアイテムが販売される可能性を定義する必要があるモジュールを備えたアプリケーションを使用しています。Amazon の販売ランキングに慣れていない場合、これは基本的に、Amazon のすべての商品に対して定義された数値であり、その商品が現在見ている以前の販売を、そのカテゴリの他のすべての商品と比較してランク付けします。これは独自の数値ですが、本質的には、売上ランキング 1 位が現在 Amazon.com で最も多くのコピーを販売していることを意味し、1,000,000 の売上ランクは、999,999 の他のアイテムがより多くのコピーを販売していることを意味します.

数か月前の売上ランクを含むデータセットがあります。次のように 1 日 1 回:

$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 に答える