php - 如何确定与其大部分内容不同的数组值?
问题描述
我有大量的 yaml 文件,我需要确定它们中的任何一个是否具有与集合的其余部分不同的键值对。
可能有多个文件具有各自不同的内容,多个文件以相同的方式不同,或者它们都可能相同。
我需要为所有相同的文件创建一个文件,并将不同的文件保持原样。
我目前将文件转换为关联数组中的字符串,并将它们的相对路径作为其键。(使用 file_get_contents)
但是,我想不出有效确定这一点的解决方案。任何帮助都会很高兴地接受
我之前尝试比较文件大小,然后执行 fopen + fread 遍历每一行并将其与同一集合中另一个 foreach 中的另一个文件进行比较。
然而,这被证明是有问题的,因为我无法轻易确定哪个文件与集合的其余部分不同,只有与它进行比较的那个文件不同。
因此,我现在尝试使用 file_get_contents 并将值放入数组中。我尝试了 array_unique,然后尝试了 array diff,但是如果两个文件与集合的其余部分不同但相同,这将不起作用。
我还使用它来摆脱整个集合中相同的文件内容,所以我只会有一组具有不同内容的文件?
有任何想法吗?我是不是想多了?发布了一些示例/测试代码
谢谢
//array is associative and holds $filepath => $fileStringContent
$arrayUniques = (array_unique($array));
$arrayDiff = (array_diff_assoc($array, $arrayUniques));
foreach($arrayDiff as $key=>$value){
//MULTIPLE WILL NOT WORK
$original = array_search($value, $arrayUniques);
unset($arrayUniques[$original]);
}
foreach($arrayUniques as $key=>$value){
$pieces = explode("/", $key);
copy($key, './output/'.$pieces[5]);
}
解决方案
推荐阅读
- video.js - 如何在视频播放器之外显示 video.js 控件
- javascript - 为什么 NavLink 将我重定向到 React 组件的末尾部分
- javascript - 如果存在 prop,如何将 CSS 应用于 body 元素?
- python - 是什么导致 tensorflow 在第一个 epoch 出现死锁?
- php - 注册 PHP sql 失败
- javascript - 发送ajax请求后解析json失败
- reporting-services - 我可以在 SSRS 的两个子报表之间添加分页符吗?
- google-cloud-platform - 在谷歌云中设置私有 DNS
- powershell - 创建一个完全由每个字符 18 个组成的密码文件
- r - 按组翻转顺序行列号并在 r 中蛇形排列矩阵