Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

दो भिन्न बहुआयामी सरणियों की तुलना करें और परिवर्तनों को हाइलाइट करें

मैंने जो कुछ भी एकत्र किया है उससे आप विवरण के बीच अंतर देखने के लिए पाठ में अंतर को उजागर करने का एक तरीका देख रहे हैं। वहां से, क्या मैं सुझाव दे सकता हूं कि आप diff फ़ंक्शन को केवल b_discription . तक सीमित करें क्योंकि अन्य विशेषताएँ आपकी ज़रूरत के दायरे में नहीं आती हैं। क्या आप उम्मीद करते हैं business_logo , business_name या mod_date परिवर्तित करने की? भले ही, निम्न फ़ंक्शन को आपके ऑब्जेक्ट में सभी विशेषताओं पर चलाया जा सकता है यदि उन्हें एक स्ट्रिंग में परिवर्तित किया जा सकता है।

simplediff एक उत्कृष्ट स्क्रिप्ट है जो दो स्ट्रिंग्स के बीच अंतर ढूंढती है, जिनमें शामिल हैं:

  • ए में मौजूद है और बी में नहीं है (हटाना)
  • बी में मौजूद है और ए (सम्मिलन) में नहीं है
<?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>

कार्य उदाहरण: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. सिद्धांत 2 नया क्षेत्र जोड़ता है जो स्वतः अनुक्रम मान उत्पन्न करता है

  2. PHP एकाधिक ड्रॉपडाउन बॉक्स फॉर्म MySQL को सबमिट करें

  3. मैं जेएसपी में डर्बी में डेटाबेस में मूल्य कैसे सम्मिलित और हटा सकता हूं? [3]

  4. असीमित लंबाई के लिए वर्चर कैसे सेट करें?

  5. mysql में नेस्टेड सेट से निपटना?