gpt4 book ai didi

php - 根据特定键从多维数组中删除重复值

转载 作者:行者123 更新时间:2023-11-28 23:21:21 24 4
gpt4 key购买 nike

得到一个像这样的多维数组:

[['key'=>'foo', 'Rating'=>5] ,  
['key'=>'bar', 'Rating'=>1] ,
['key'=>'Tee', 'Rating'=>3] ,
['key'=>'foo', 'Rating'=>10] ,
['key'=>'foo', 'Rating'=>1]]

我想根据特定键和评级系统删除重复项,同时保持除索引键之外的原始数组结构。

所以最终的结果应该是这样的:

[['key'=>'bar', 'Rating'=>1] ,
['key'=>'Tee', 'Rating'=>3] ,
['key'=>'foo', 'Rating'=>10]]

我正在寻找解决此问题的有效方法。

理想情况下,array_unique() 函数接受键值作为参数,以查找给定数组和 Rating 键上的重复项。

array_key_unique($array, $uniqe_key, $Rating);

我想知道有没有办法用 MySQL 查询来做到这一点?

最佳答案

作为Raymond Nijland在评论中陈述,最好在查询中这样做:

SELECT `key`, MAX(`Rating`) FROM `table_name` GROUP BY `key`

但是因为我很无聊,所以循环并将具有最高 Rating 的那个添加到结果中:

foreach($array as $value) {
if(!isset($result[$value['key']]) || $result[$value['key']]['Rating'] < $value['Rating']) {
$result[$value['key']] = $value;
}
}

或者,升序排序,提取一个以key为索引的数组,覆盖重复项:

array_multisort(array_column($array, 'key'),
array_column($array, 'Rating'),
SORT_ASC, $array);

$result = array_column($array, null, 'key');

无论哪种情况,要重新索引到基于整数的数组,请使用:

$result = array_values($result);

关于php - 根据特定键从多维数组中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41470964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com