Implements the Myers diff algorithm.

Myers, Eugene W. "An O (ND) difference algorithm and its variations."
Algorithmica 1.1 (1986): 251-266.

  • internal
Cloneable Instantiable
public __construct ( callable $isEqual )

Create differ over the given equality relation.

  • param callable $isEqual Equality relation with signature function($a, $b) : bool
public diff ( array $old , array $new )

Calculate diff (edit script) from $old to $new.

public diffWithReplacements ( array $old , array $new )

Calculate diff, including "replace" operations.

If a sequence of remove operations is followed by the same number of add operations, these
will be coalesced into replace operations.

  • param array $old Original array
  • param array $new New array
  • return PhpParser\Internal\DiffElem [] Diff (edit script), including replace operations
private $isEqual
private calculateTrace ( array $a , array $b )
private coalesceReplacements ( array $diff )

Coalesce equal-length sequences of remove+add into a replace operation.

private extractDiff ( array $trace , int $x , int $y , array $a , array $b )
© 2022 Bruce Wells
Search Namespaces \ Classes