3

2 つの文字列があり、違いを比較して、異なる項目の値を使用したいと考えています。例えば:

$stringA = "1, 2, 3, 4, 5"
$stringB = "1, 2, 4, 5, 6"

したがって、stringB との違いは、「3」が欠落しており、「6」が追加されていることです。

値「3」と「6」を使用する関数を実行したいと思います。これをコンテキストに入れるために、文字列が MySQL クエリで使用されていると想像してください。ID 3 と 6 のレコードのみを更新する必要があるため、更新する必要がありますが、残りは同じままであるため、データベース レコードを更新する必要はありません。それらの。それが理にかなっていることを願っていますか?

PHP を使用して違いを取得し、結果がカンマ区切りの値を持つ文字列であることを確認するにはどうすればよいですか? すなわち

$stringDifference = "3, 6"
4

2 に答える 2

6

私のマシンでコードを実行しただけで、これでトリックが解決します

$stringA = "1, 2, 3, 4, 5";
$stringB = "1, 2, 4, 5, 6";

$stringA = explode(',', $stringA);
$stringB = explode(',', $stringB);

$Difference_1 = array_diff($stringA, $stringB); // Check string A Against String B
$Difference_2 = array_diff($stringB, $stringA); // Check String B against String A
$Difference = array_merge($Difference_1, $Difference_2); // Merge the two difference arrays together 
$Difference = implode(',', $Difference); // Convert to a string
echo "The Difference Between The Two Is: ".$Difference; // Echo the difference

アップデート

function Differences ($Arg1, $Arg2){
    $Arg1 = explode (',', $Arg1);
    $Arg2 = explode (',', $Arg2);

    $Difference_1 = array_diff($Arg1, $Arg2);
    $Difference_2 = array_diff($Arg2, $Arg1);
    $Diff = array_merge($Difference_1, $Difference_2);
    $Difference = implode(',', $Diff);
    return "The Difference Between The Two Is: ".$Difference;
}

$stringA = "1, 2, 3, 4, 5";
$stringB = "1, 2, 4, 5, 6";


// Call By:

echo Differences($stringA, $stringB);

更新が遅くなり申し訳ありません。新しいスクリプト エディタとして PHPStorm に慣れてきました。

于 2013-03-29T03:27:58.757 に答える
0
function getDif(stringA, stringb){
    $stra = explode(",", $stringA);
    $strb = explode(",", $stringB);
    $viola = array_diff($stra,$strb);
    return  $voila
}
于 2013-03-29T03:36:44.550 に答える