私が使用したもの:
$maxpoints = 40;
for($i = 0; $i < count($trainergross); $i++){
$trainergross[$i]['points'] = $maxpoints;
$maxpoints -=2;
}
ここに私のソート機能があります:
function grossSort($gross, $compare) {
if($gross['gross'] > $compare['gross'])
return -1; // move up
else if($gross['gross'] < $compare['gross'])
return 1; // move down
else
return 0; // do nothing
}
これはトリッキーです(少なくとも私にとっては)。総劣化の最大値 2 に基づいてポイント システムを生成する必要があります。
関数を実行して最高のグロス ( $trainergross
)で並べ替えた後の配列を次に示します。
Array
(
[0] => Array
(
[instr] => blah
[club] => Colvin
[gross] => 2146
[bud] => 0
[ratio] => 0
)
[1] => Array
(
[instr] => rob
[club] => Evans
[gross] => 2000
[bud] => 0
[ratio] => 0
)
[2] => Array
(
[instr] => new
[club] => Boulevard
[gross] => 930
[bud] => 755
[ratio] => 248
)
[3] => Array
(
[instr] => test
[club] => Boulevard
[gross] => 805
[bud] => 50
[ratio] => 50
)
[4] => Array
(
[instr] => lee
[club] => Boulevard
[gross] => 235
[bud] => 60
[ratio] => 30
)
[5] => Array
(
[instr] => rob
[club] => Boulevard
[gross] => 175
[bud] => 125
[ratio] => 125
)
[6] => Array
(
[instr] => rob
[club] => Henrietta
[gross] => 60
[bud] => 0
[ratio] => 0
)
)
この例$trainergross[0]
ではkey => value
、"points" => 40
$trainergross[1]
38.. [2] は 36... などを取得します。
次に、配列をつぼみでソートし、最高のつぼみに基づいて値キーを増やします。
私の問題は、これをどこから始めればいいのかわからないことです。配列の順序に基づいてキーを追加することは可能ですか?
私が持っている唯一の考えは、3つの異なる配列を実行してからそれらをすべてマージすることですが、それは非常に非効率的です。
あいまいで申し訳ありませんが、尋ねる方法さえ本当に知りません。うまくいけば、これで十分に説明できます。