Php 如何在多维数组中查找重复项的键
我正在报告约会活动,并包含一个导出KPI背后原始数据的功能。这些原始数据存储为CSV,我需要检查是否输入了可能重复的咨询 根据患者ID和预约ID为每行数据分配一个唯一的就诊ID。原始数据包含30列数据,只需对其中7列执行重复检查。我已经导入了CSV,并为第一条记录创建了一个数组,如下所示,然后将rest附加到Php 如何在多维数组中查找重复项的键,php,arrays,Php,Arrays,我正在报告约会活动,并包含一个导出KPI背后原始数据的功能。这些原始数据存储为CSV,我需要检查是否输入了可能重复的咨询 根据患者ID和预约ID为每行数据分配一个唯一的就诊ID。原始数据包含30列数据,只需对其中7列执行重复检查。我已经导入了CSV,并为第一条记录创建了一个数组,如下所示,然后将rest附加到 $mds = array( $unique_visit_id => array( $appt_date, $dob, $s
$mds = array(
$unique_visit_id => array(
$appt_date,
$dob,
$site,
$CCG,
$GP,
$appt_type,
$treatment_scheme
)
);
我需要的是扫描$mds
数组,并返回一个数组,其中只包含$unique\u visit\u id
,以查找任何重复的数组
e、 g.键1111、2222和5555都引用了所有七个值都包含相同值的数组,那么我需要返回2222和5555
我尝试过搜索,但没有找到任何有效的方法
谢谢这就是我所做的,仍然在验证(数据集非常大),但到目前为止似乎仍在按预期运行
$handle = fopen("../reports/mds_full_export.csv", "r");
$visits = array();
while($data = fgetcsv($handle,0,',','"') !== FALSE){
$key = $data['unique_visit_id'];
$value = $data['$appt_date'].$data['$dob'].$data['$site'].$data['$CCG'].$data['$GP'].$data['$appt_type'].$data['$treatment_scheme'];
$visits[$key] = $value;
}
$visits = asort($visits);
$previous = "";
$dupes = array();
foreach($visits as $id => $visit){
if(strcmp($previous, $visit) == 0){
$dupes[] = $id;
}
$previous = $visit;
}
return $dupes;
到目前为止,您已经尝试了什么,请分享您的一些代码。。。为什么1111比2222和5555更重要?你打算如何处理这份名单(你是否需要比被骗者身份证更多的信息)?显示你的代码。请给我们看一些你尝试过的东西。这将有助于我们更好地理解您的问题。如果您将所有这些值连接在一起,并将它们存储在一个额外的字段中,那么检查这七个字段中的“组合”唯一性将变得更加容易。如果随后按该额外字段的内容对数组进行排序,则可以随后循环数据,并检查当前记录的值是否与前一个记录的值相同-如果是,则知道当前记录是重复的。[…][…]如果结果是哪些记录很重要(必须是2222和5555,而不是1111和2222,或者1111和5555),那么您需要按照两个标准进行排序,首先是串联的“7-in-1”值,其次是决定这些记录顺序的值。