如何从PHP中的多维数组中删除重复值?
示例数组:
Array
(
[0] => Array
(
[0] => abc
[1] => def
)
[1] => Array
(
[0] => ghi
[1] => jkl
)
[2] => Array
(
[0] => mno
[1] => pql
)
[3] => Array
(
[0] => abc
[1] => def
)
[4] => Array
(
[0] => ghi
[1] => jkl
)
[5] => Array
(
[0] => mno
[1] => pql
)
)
Run Code Online (Sandbox Code Playgroud) 什么是最简单的SQL语句,它将返回给定列的重复值及其在Oracle数据库表中的出现次数?
例如:我有一个JOBS包含列的表JOB_NUMBER.我怎样才能知道我是否有任何副本JOB_NUMBER,以及它们被复制了多少次?
来自Eclipse并且一直习惯于复制行,发现Xcode没有这样的功能是很奇怪的.或者是吗?
我知道可以改变系统范围的键绑定,但这不是我想要的.
我正在尝试清理一个数据库,这些数据库多年来获得了许多重复记录,名称略有不同.例如,在公司表中,有"Some Company Limited"和"SOME COMPANY LTD!"等名称.
我的计划是将违规表导出为R,将名称转换为小写,替换常见的同义词(如"limited" - >"ltd"),删除非字母字符然后agrep用来查看看起来相似的内容.
我的第一个问题是agrep只接受一个匹配的模式,并且循环每个公司名称以匹配其他公司名称的速度很慢.(有些待清理的表会有数十个,可能有数十万个要检查的名称.)
我已经非常简要地看了一下这个tm包(JSS文章),它看起来非常强大,但它主要用于分析大块文本,而不仅仅是名称.
我有一些相关的问题:
tm包是否适合这类任务?
有更快的替代方案agrep吗?(所述函数使用Levenshtein编辑距离,传闻速度慢.)
R中还有其他合适的工具,除了agrep和tm?
我是否应该在R中执行此操作,还是应该直接在数据库中执行此类操作?(这是一个Access数据库,所以如果可能,我宁愿避免触摸它.)
你如何计算ruby数组中的重复项?
例如,如果我的数组有三个a,我怎么能算这个
用于遍历1700万条记录以删除重复项的查询 现在已经运行了大约16个小时,我想知道如果查询现在已经停止,如果它将完成删除语句,或者如果它在运行时已经删除了查询?事实上,如果我确实停止它,它是否最终确定删除或回滚?
我发现当我做的时候
select count(*) from myTable
Run Code Online (Sandbox Code Playgroud)
它返回的行(在执行此查询时)比起始行计数少约5.显然服务器资源非常差,所以这意味着这个过程需要16个小时才能找到5个重复项(实际上有数千个),这可能会运行数天?
这个查询在2000行测试数据上花费了6秒钟,并且它在这组数据上运行良好,所以我认为整套需要15个小时.
有任何想法吗?
以下是查询:
--Declare the looping variable
DECLARE @LoopVar char(10)
DECLARE
--Set private variables that will be used throughout
@long DECIMAL,
@lat DECIMAL,
@phoneNumber char(10),
@businessname varchar(64),
@winner char(10)
SET @LoopVar = (SELECT MIN(RecordID) FROM MyTable)
WHILE @LoopVar is not null
BEGIN
--initialize the private variables (essentially this is a .ctor)
SELECT
@long = null,
@lat = null,
@businessname = null,
@phoneNumber = null,
@winner = null
-- …Run Code Online (Sandbox Code Playgroud) 假设您有一系列元素,如何选择具有重复元素的元素并将它们放入每组中并进行最少量的比较?最好是在C++中,但算法比语言更重要.对于给出{E1,E2,E3,E4,E4,E2,E6,E4,E3}的示例,我希望提取出{E2,E2},{E3,E3},{E4,E4,E4}.您将选择哪种数据结构和算法?还请包括设置数据结构的成本,例如,它是否是像std :: multimap这样的预先排序的数据结构
根据建议使事情更清楚.有一个约束:元素必须自己进行比较,以确定它们是重复的.
所以哈希不适用,因为实际上他们将比较从重元素(例如数据块)转移到轻元素(整数),并减少一些比较,但不要废除它们,最后,我们又回到了我们原来的问题,什么时候在一个碰撞桶内.
假装你有一堆潜在的GB重复文件,它们与人类所知的每个哈希算法具有相同的哈希值.现在你要发现真正的重复.
不,它不能成为现实生活中的问题(即使MD5足以为现实生活中的文件生成唯一的哈希值).但只是假装我们可以专注于寻找涉及最少量比较的数据结构+算法.
我正在做的是
代表一个STL std :: list数据结构(在那个1中)它的元素删除比例如矢量2便宜,它的插入更便宜,不需要排序.)
弹出一个元素并将其与其余元素进行比较,如果找到重复元素,则将其从列表中拉出.一旦到达列表的末尾,就会找到一组重复,如果有的话.
重复上述两个步骤,直到列表为空.
在最好的情况下它需要N-1,但是(N-1)!在更糟糕的情况下.
有什么更好的选择?
我的代码使用上面解释的方法:
// algorithm to consume the std::list container,
// supports: list<path_type>,list< pair<std::string, paths_type::const_iterater>>
template<class T>
struct consume_list
{
groups_type operator()(list<T>& l)
{
// remove spurious identicals and group the rest
// algorithm:
// 1. compare the first element with the remaining elements,
// pick out all duplicated files including the first element itself.
// 2. start over again with …Run Code Online (Sandbox Code Playgroud) 我想排除所有重复的行.但是,只有当它们是后续行时才必须如此.遵循一个代表性的例子:
我的意见df:
df <- "NAME VALUE
Prb1 0.05
Prb2 0.05
Prb3 0.05
Prb4 0.06
Prb5 0.06
Prb6 0.01
Prb7 0.10
Prb8 0.05"
df <- read.table(text=df, header=T)
Run Code Online (Sandbox Code Playgroud)
我的期望outdf:
outdf <- "NAME VALUE
Prb1 0.05
Prb4 0.06
Prb6 0.01
Prb7 0.10
Prb8 0.05"
outdf <- read.table(text=df, header=T)
Run Code Online (Sandbox Code Playgroud)