jelle-s/arraykeycombiner

通过搜索交集并将它们添加到主数组中来组合数组。使用分隔符组合键。

1.0.2 2016-12-26 11:55 UTC

This package is auto-updated.

Last update: 2024-09-12 21:20:24 UTC


README

Build Status Code Climate Test Coverage Issue Count

通过搜索交集并将它们添加到主数组中来组合数组。使用分隔符组合键。

use Jelle_S\Util\Combiner\ArrayKeyCombiner;

// Search this array of arrays for intersections and extract them, using a
// delimiter to combine the keys. Limit the number of iterations to search for
// intersections to 10.000, limit the minimum size of intersections to 3, set
// the key delimiter to a comma.
$arrays = array(
 array(
   'a' => 1,
   'b' => 2,
   'c' => 3,
   'd' => 4,
   'e' => 9,
 ),
 array(
   'a' => 1,
   'b' => 2,
   'c' => 3,
   'e' => 9,
 ),
 array(
   'a' => 1,
   'b' => 42,
   'c' => 3,
   'd' => 4,

 ),
 array(
   'b' => 42,
   'c' => 3,
   'a' => 1,
 ),
 array(
   'z' => 26,
   'e' => 9,
   'a' => 1,
 ),
);
$combiner = new Jelle_S\Util\Combiner\ArrayKeyCombiner($arrays, 3, 10000, ',');
print_r($combiner->combine());

输出

Array
(
    [4] => Array
        (
            [a] => 1
            [e] => 9
            [z] => 26
        )

    [0,1] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
            [e] => 9
        )

    [2,3] => Array
        (
            [a] => 1
            [c] => 3
            [b] => 42
        )

    [2,0] => Array
        (
            [d] => 4
        )

)

数组中键 '4' 的 'a' 和 'z' 键未组合,因为组合的阈值为 3,组合它们将只产生一个包含两个元素的组合数组。

具有键 '2' 和 '0' 的数组 已组合,因为在提取组合后,这两个数组是相同的,阈值对 相同 的数组没有影响,它们总是被组合。