php - PHP数组如何检查其他数组中是否存在所有数组值
问题描述
我有这样的数组:
$array1 = [1,2,3];
$array2 = [3,2,1];
$array3 = [2,1,3];
$array4 = [2,1,3];
$array5 = [1,1,1];
$array6 = [3,3,2];
$array7 = [1,2,1];
$array8 = [8,9,2];
我想检查 array2 直到 array8 与 array1 的比较。它应该给我这样的预期回报:
$array2 = [3,2,1]; return 'match'
$array3 = [2,1,3]; return 'match'
$array4 = [2,3,1]; return 'match'
$array5 = [1,1,1]; return 'not match'
$array6 = [3,3,2]; return 'not match'
$array7 = [1,2,1]; return 'not match'
$array8 = [8,9,2]; return 'not match'
我尝试使用它进行比较,array_diff()
但有时结果与我预期的不同,特别是如果在 array2 上有两个相同的值。
注意:array2 直到 array8 需要始终具有来自 array1 的所有 3 个值
解决方案
您只需要在比较它们之前对两个数组进行排序,例如
sort($array1);
for ($i = 2; $i <= 8; $i++) {
sort(${"array$i"});
echo "array $i: " . ($array1 == ${"array$i"} ? 'match' : 'no match') . "\n";
}
输出:
array 2: match
array 3: match
array 4: match
array 5: no match
array 6: no match
array 7: no match
array 8: no match
推荐阅读
- json - 查询以下文件系统以获取特定文件系统 ID 的最佳方法是什么?
- perl - 如何使用 find_elements 查找多个元素的文本
- java - 在 Java 中按多个其他列表对列表进行排序
- sql - sql日期时间。如何设置月份
- scim - 我应该为自定义 SCIM 架构使用什么命名约定?
- r - 在 R 中创建一个向量,计算每个元素在另一个向量中出现的次数
- sql-server - Azure SQL Server ARM 模板部署错误消息
- node.js - 将反应 js 和节点应用程序部署到 aws 时出错
- python - 为什么 pandas 使用对象 dtype 存储布尔索引?
- powershell - Powershell 脚本服务检查