データベースにデータを入力するためにチェックしたかったです。チェックは次のとおりです。
$implode1 = "cat, dog, chicken";
$implode2 = "cow, goat, cat";
変数内の猫$implode1
も変数に含まれている場合は$implode2
、警告メッセージが表示されます。上記の問題をコーディングするにはどうすればよいですか?
お願い助けて :(
explode
文字列を配列に変換array_intersect
し、両方に存在する値を返すために使用できます。
$string1 = 'cat, dog, chicken';
$string2 = 'cow, goat, cat';
$compare = explode(', ', $string1);
$against = explode(', ', $string2);
$matches = array_intersect($compare, $against);
$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";
}
}
値がすでに存在するかどうかをデータベースに挿入する前に確認することができます。
if not exists (select * from TestTable where column NOT IN {$implode})
begin
...Do something here!!
end
配列の形式で各文字列から値を抽出できる関数を自分で作成してから、交点を取得します。FALSEでない場合は交差点があるため、警告を実行します。
$values = function($string) {
return explode(', ', $string);
};
if (array_intersect($values($implode1), $values($implode2))) {
trigger_error('Values intersect', E_USER_WARNING);
}
最初の配列をループし、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)