代码之家  ›  专栏  ›  技术社区  ›  ntan

匹配数组上的子数组并对其进行计数

  •  0
  • ntan  · 技术社区  · 15 年前

    我有一个数组

     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
            )
    )
    

    任何建议。

    2 回复  |  直到 15 年前
        1
  •  1
  •   aWebDeveloper    15 年前

    只需将数组中的每个元素与其他元素进行比较,假设它们是线性数组,但使用 array_diff 比较每个元素。如果它们不同,则将元素或数组索引复制到另一个数组中

        2
  •  3
  •   Russell Davis    15 年前

    $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);
    }
    
    推荐文章