0

データベースにデータを入力するためにチェックしたかったです。チェックは次のとおりです。

$implode1 = "cat, dog, chicken";

$implode2 = "cow, goat, cat";

変数内の猫$implode1も変数に含まれている場合は$implode2、警告メッセージが表示されます。上記の問題をコーディングするにはどうすればよいですか?

お願い助けて :(

4

5 に答える 5

2

explode文字列を配列に変換array_intersectし、両方に存在する値を返すために使用できます。

$string1 = 'cat, dog, chicken';
$string2 = 'cow, goat, cat';

$compare = explode(', ', $string1);
$against = explode(', ', $string2);

$matches = array_intersect($compare, $against);
于 2012-11-09T08:46:52.897 に答える
2
$implode1 = "cat, dog, chicken";
$implode2 = "cow, goat, cat";

$imp1 = explode(', ',$implode1);
$imp2 = explode(', ',$implode2);

foreach($imp1 as $val){
    if(in_array($val,$imp2)) {
        echo "$val is present in $implode2";
    }
}
于 2012-11-09T08:49:23.107 に答える
0

値がすでに存在するかどうかをデータベースに挿入する前に確認することができます。

if not exists (select * from TestTable where column NOT IN {$implode})
begin
    ...Do something here!!
end
于 2012-11-09T08:51:52.493 に答える
0

配列の形式で各文字列から値を抽出できる関数を自分で作成してから、交点を取得します。FALSEでない場合は交差点があるため、警告を実行します。

$values = function($string) {
    return explode(', ', $string);
};

if (array_intersect($values($implode1), $values($implode2))) {
    trigger_error('Values intersect', E_USER_WARNING);
}

実際の動作をご覧ください

于 2012-11-09T08:52:57.687 に答える
0

最初の配列をループし、2 番目の配列に要素が存在するかどうかを確認します。次のようになります。

foreach($implode1 as $val){
if(in_array($val,$implode2)) {

    echo "$val is exists in the implode2 array";

       }
}

ああ、すみません、それらはただの文字列です。最初にそれらを爆発させます:

arr_implode1 = explode(", ",$implode1)
arr_implode1 = explode(", ",$implode2)
于 2012-11-09T08:41:55.620 に答える