php - 如何区分2个多维数组?
问题描述
我正在尝试获取两个多维数组的差异并返回另一个数组中不匹配的数组。
我在这里:
阵列 1:
Array (
[0] => Array ( [Dashboard] => /LMS/Dashboard )
[1] => Array ( [Notifications] => /LMS/Notifications )
[2] => Array ( [Clients] => /LMS/Clients )
[3] => Array ( [Penalties] => /LMS/Penalties )
[4] => Array ( [Payments] => /LMS/Payments )
[5] => Array ( [Profit] => /LMS/Profit )
[6] => Array ( [Income] => /LMS/Income )
[7] => Array ( [Outcome] => /LMS/Outcome )
[8] => Array ( [Accounts] => /LMS/Accounts )
[9] => Array ( [Collection] => )
[10] => Array ( [Missed Payments] => )
[11] => Array ( [Applied Penalties] => )
[12] => Array ( [Group Names] => /LMS/Group-Names )
)
阵列 2:
Array (
[0] => Array ( [Notifications] => /LMS/Notifications )
[1] => Array ( [Clients] => /LMS/Clients )
[2] => Array ( [Penalties] => /LMS/Penalties )
[3] => Array ( [Payments] => /LMS/Payments )
[4] => Array ( [Collection] => )
[5] => Array ( [Missed Payments] => )
[6] => Array ( [Applied Penalties] => )
)
我想得到数组 1 中没有匹配的数组。
解决方案
您可以使用以下代码:
public static function check_diff_multi($array1, $array2){
//Get all the Keys from the 2nd Array.
$keys = array();
foreach( $array2 as $key => $a ) {
$keys = array_merge( $keys, array_keys( $a ));
}
//This will be the final array
$result = array();
//Loop through First Array
foreach( $array1 as $key => $a ) {
$firstKey = key($a); //Get the Key
if( in_array( $firstKey, $keys ) ) { //If this key exists in the 2nd array, then continue
continue;
}
$result[] = $array1[$key]; //This key is not present in 2nd array, so add to output.
}
return $result;
}
推荐阅读
- yaml - Snakemake 使用 bamtools 合并多个 bam 文件
- git - $ 流 README.md
- c - C - 奇怪的内存错误
- c# - 错误 TS2688:构建:找不到“节点”的类型定义文件。(1, 23)
- laravel - 回显视图中相关表中值的名称
- angular - 离子输入的原子设计方法
- python - 将值保存到每列python
- python-3.x - Pandas groupby、聚合和合并抛出ValueError
- python - 如何通过 python 将我的 xlsx 文件批量转换为 CSV
- spring-boot - PreparedStatement 未执行且 RowMapper 未调用