Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

So sánh hai mảng đa hướng khác nhau và đánh dấu những thay đổi

Từ những gì tôi thu thập được, bạn đang tìm cách làm nổi bật sự khác biệt trong văn bản để xem sự khác biệt giữa các mô tả. Từ đó, tôi có thể đề nghị bạn giới hạn chức năng khác chỉ với b_discription vì các thuộc tính khác dường như không nằm trong phạm vi những gì bạn cần. Bạn có mong đợi business_logo , business_name hoặc mod_date được thay đổi? Bất kể, hàm sau có thể được chạy trên tất cả các thuộc tính trong đối tượng của bạn nếu chúng có thể được chuyển đổi thành một chuỗi.

simplediff là một tập lệnh tuyệt vời tìm ra sự khác biệt giữa hai chuỗi, bao gồm:

  • Tồn tại ở A chứ không phải B (Xóa)
  • Tồn tại ở B chứ không phải A (Chèn)
<?php
/*
    Paul's Simple Diff Algorithm v 0.1
    (C) Paul Butler 2007 <http://www.paulbutler.org/>
    May be used and distributed under the zlib/libpng license.
*/
function diff($old, $new){
    $matrix = array();
    $maxlen = 0;
    foreach($old as $oindex => $ovalue){
        $nkeys = array_keys($new, $ovalue);
        foreach($nkeys as $nindex){
            $matrix[$oindex][$nindex] = isset($matrix[$oindex - 1][$nindex - 1]) ?
                $matrix[$oindex - 1][$nindex - 1] + 1 : 1;
            if($matrix[$oindex][$nindex] > $maxlen){
                $maxlen = $matrix[$oindex][$nindex];
                $omax = $oindex + 1 - $maxlen;
                $nmax = $nindex + 1 - $maxlen;
            }
        }   
    }
    if($maxlen == 0) return array(array('d'=>$old, 'i'=>$new));
    return array_merge(
        diff(array_slice($old, 0, $omax), array_slice($new, 0, $nmax)),
        array_slice($new, $nmax, $maxlen),
        diff(array_slice($old, $omax + $maxlen), array_slice($new, $nmax + $maxlen)));
}
function htmlDiff($old, $new){
    $ret = '';
    $diff = diff(preg_split("/[\s]+/", $old), preg_split("/[\s]+/", $new));
    foreach($diff as $k){
        if(is_array($k))
            $ret .= (!empty($k['d'])?"<del>".implode(' ',$k['d'])."</del> ":'').
                (!empty($k['i'])?"<ins>".implode(' ',$k['i'])."</ins> ":'');
        else $ret .= $k . ' ';
    }
    return $ret;
}

$old = "We smsfactory are world's leading SMS messaging provider offering remarakable and reliable SMS Text and Voice messaging globally through almost all-networks of mobile phones successfully. You may contact-us anytime for making any query. Our Services are very useful economically as well as eco-friendly";

$new = "We smsfactory are world's leading SMS messaging provider offering remarakable and reliable SMS Text and Voice messaging globally through almost all-networks of mobile phones successfully. You may contact-us anytime for making any query. Our Services are very useful economically as well as eco-friendly, which enables you to send simultaneous bulk sms to your targeted Customers, Regular-Customers, Buyers, Shoppers, Fans, Regular-shoppers, Clients, Clientele, Members, Managers, Supervisors, Fieldworkers, Graduates, Post graduates, Technicians, Public, Citizens, Mobile-Users, Viewers, Future-purchasers, Users, End-users, Students, Job-seekers, Enjoyers, Visitors, Frequent-visitors, Persons, Individuals, Frequenter, Obtainers, Receivers, Assignees, Recipients, Travelers, Tourists, Guys, Persons, Men and Women, Spectators, Technicians, Staff, Workers, Recruiters, Newcomers, Representatives, Dealers, Distributors, Followers, Shareholders, Investors, Bondholders, Shareowners, Financiers, Bankers, Participants, Associates, Assistants, Colleagues, Contributors, Helpers, Partakers, Party, Sharers, Supporters, Admirers, Devotees, Groupies, Enthusiasts and many more.";

?>
<!doctype html>
<head>
    <style>
        .container {
            width: 50%;
            margin-right: auto;
            margin-left: auto;
            font-family: sans-serif;
            font-size: 12px;
            line-height: 16px;
        }

        del {
            background-color: #FFAB91;
            color: ;
            text-decoration: none;
        }

        ins {
            background-color: #C5E1A5;
            color: ;
            text-decoration: none;
        }
    </style>
</head>
<body>
    <div class="container">
        <?php echo htmlDiff($old, $new); ?>
    </div>  
</body>
</head>

Ví dụ làm việc: https://3v4l.org/uU0dv




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào thì hữu ích khi lưu trữ dữ liệu tổng hợp trong SQL

  2. lan truyền dữ liệu mysql trên nhiều đĩa

  3. LAST_INSERT_ID () cách hoạt động ở môi trường nhiều người dùng

  4. vấn đề nhận num_rows với lớp PDO trong php

  5. Làm thế nào để sửa chữa cột không xác định Bí danh truy vấn MySQL? 2018