我有一个数组
Array
(
[1] => Array
(
[0] => 1
[1] => 3
)
[2] => Array
(
[0] => 1
[1] => 2
)
[3] => Array
(
[0] => 1
[1] => 3
)
)
我需要找到常见的子阵列
在上面的示例中,数组1和3具有公共子数组
(
[0] => 1
[1] => 3
)
所以最终的数组必须是
Array
(
[1] => Array
(
[0] => 1
[1] => 3
)
[2] => Array
(
[0] => 1
[1] => 2
)
)
但我需要计算一些常见的数值。
任何建议。
答案 0 :(得分:3)
我不会将它用于生产代码,但这里是一个快速的&有点聪明的方法:
$arrays = array(array(1,3), array(1,2), array(1,3)); // Your example data
$serialized = array_map('serialize', $arrays);
$counts = array_count_values($serialized);
foreach ($counts as $data => $count) {
echo "$count: " . print_r(unserialize($data), true);
}
答案 1 :(得分:1)
只需将数组的每个元素与其他元素进行比较,假设它们为线性数组,但使用 array_diff
来比较每个元素。如果它们不同,则将元素或数组索引复制到另一个数组