function Text_Diff_Mapped($from_lines, $to_lines,
                              $mapped_from_lines, $mapped_to_lines)
    {
        assert(count($from_lines) == count($mapped_from_lines));
        assert(count($to_lines) == count($mapped_to_lines));

        parent::Text_Diff($mapped_from_lines, $mapped_to_lines);

        $xi = $yi = 0;
        for ($i = 0; $i < count($this->_edits); $i++) {
            $orig = &$this->_edits[$i]->orig;
            if (is_array($orig)) {
                $orig = array_slice($from_lines, $xi, count($orig));
                $xi += count($orig);
            }

            $final = &$this->_edits[$i]->final;
            if (is_array($final)) {
                $final = array_slice($to_lines, $yi, count($final));
                $yi += count($final);
            }
        }
    }
function Text_Diff_Mapped($from_lines, $to_lines,
                              $mapped_from_lines, $mapped_to_lines)
    {
        assert(count($from_lines) == count($mapped_from_lines));
        assert(count($to_lines) == count($mapped_to_lines));

        parent::Text_Diff($mapped_from_lines, $mapped_to_lines);

        $xi = $yi = 0;
        for ($i = 0; $i < count($this->_edits); $i++) {
            $orig = &$this->_edits[$i]->orig;
            if (is_array($orig)) {
                $orig = array_slice($from_lines, $xi, count($orig));
                $xi += count($orig);
            }

            $final = &$this->_edits[$i]->final;
            if (is_array($final)) {
                $final = array_slice($to_lines, $yi, count($final));
                $yi += count($final);
            }
        }
    }
function Text_Diff_Mapped ( $ from_lines , $ to_lines , $ mapped_from_lines , $ mapped_to_lines ) { assert ( count ( $ from_lines ) == count ( $ mapped_from_lines ) ) ; assert ( count ( $ to_lines ) == count ( $ mapped_to_lines ) ) ; parent :: Text_Diff ( $ mapped_from_lines , $ mapped_to_lines ) ; $ xi = $ yi = 0 ; for ( $ i = 0 ; $ i < count ( $ this -> _edits ) ; $ i ++ ) { $ orig = & $ this -> _edits [ $ i ] -> orig ; if ( is_array ( $ orig ) ) { $ orig = array_slice ( $ from_lines , $ xi , count ( $ orig ) ) ; $ xi += count ( $ orig ) ; } $ final = & $ this -> _edits [ $ i ] -> final ; if ( is_array ( $ final ) ) { $ final = array_slice ( $ to_lines , $ yi , count ( $ final ) ) ; $ yi += count ( $ final ) ; } } }
Computes a diff between sequences of strings.

This can be used to compute things like case-insensitve diffs, or diffs
which ignore changes in white-space.

@param array $from_lines         An array of strings.
@param array $to_lines           An array of strings.
@param array $mapped_from_lines  This array should have the same size
number of elements as $from_lines.  The
elements in $mapped_from_lines and
$mapped_to_lines are what is actually
compared when computing the diff.
@param array $mapped_to_lines    This array should have the same number
of elements as $to_lines.
Computes a diff between sequences of strings .