各サブ配列で重複する値を配列で検索し、存在する場合は、このアイテムに接続されている最大値のみを保持します。
それが私の質問ですが、物事を明確にするために例を追加するのが大好きです!
これは私の配列です:
Array
(
[0] => Array
(
[groupid] => 1
[points] => 5
)
[1] => Array
(
[groupid] => 1
[points] => 1
)
[2] => Array
(
[groupid] => 1
[points] => 4
)
[3] => Array
(
[groupid] => 2
[points] => 1
)
)
ご覧のとおり、最初の 3 つの項目は同じgroupid
です。それらのアイテムを一致させて、どれが最も高いポイントを持っているかを確認したい. 他の 1 つ (最も低いポイント) は、アレイから追い出されます。
したがって、この場合、アイテム0
とは同じグループに属しますが1
、ポイントが最も高くなります。配列から削除する必要があります。2
2
0
1
私の望む結果は次のようになります。
Array
(
[0] => Array
(
[groupid] => 1
[points] => 5
)
[1] => Array
(
[groupid] => 2
[points] => 1
)
)
数時間試してみましたが、まだ運がありません。たぶん、私は非常に単純なものを見落としており、これを理解するのが難しいと考えています...どんな助けもいただければ幸いです!
EDIT Drupalサイトです(ただし、違いはありません)。これはクエリです:
foreach ($promotions as $value) {
$promo = db_query("SELECT * FROM {_promo_articles} WHERE art = :art AND promoid = :promoid", array(
':art' => $value['product'][0]->sku,
':promoid' => $value['promo_id'][0])) ->fetchAll();
}