-4

データベースにデータを入力するためのチェックをしたかったのですが、チェックは以下の通りです。

$implode1 = "apple, orange, banana";

$implode2 = "banana, mango";

変数のバナナが変数$implode1にも含まれている場合は$implode2、警告メッセージが表示されます。変数の値が空の場合、実行は無視されます。例:

$implode1 = "";

$implode2 = "";

上記の問題をどのようにコーディングしますか?

お願い助けて :(

4

4 に答える 4

0

PHPのarray_intersect関数を使用して、交差点を取得できます(http://php.net/manual/en/function.array-intersect.phpを参照)。

$arr1 = explode(", ", "apple, orange, banana");
$arr2 = explode(", ", "banana, mango");
$intersection = array_intersect($arr1, $arr2);
if (count($intersection) > 0) {
    echo "WARNING: the lists have a non-empty intersection!";
}
于 2012-11-21T03:28:26.557 に答える
0

通常、猫とは連結を意味すると思いますが、ここでは適切ではないようです。ただし、それが意味することであると仮定すると、次のように、両方の変数で同じ連結文字 (コンマ) をチェックするだけです。

if ( stristr($implode1, ",") && stristr($implode2, ",") ) {
    // error
} else {
    // success, do something
}

ただし、両方の変数に同じ項目 (この場合は果物) が入力されていることを意味すると仮定すると、次の方法で確認できます。

$im1 = explode(",", $implode1);
$im2 = explode(",", $implode2);
foreach($im1 as $i) {
    if ( array_search($i, $im2) ) {
        // error
    } else {
        // success, do something
    }
}

もちろん、両方の文字列で特定の値を検索することもできますが、それが目的だとは思いません。しかし、そうであると仮定すると、そのコードは次のとおりです。

$duplicate = "apple"; // the item you are searching for a duplicate of
if ( stristri($implode1, $duplicate) && stristr($implode2, $duplicate) ) {
    // error
} else {
    // success, do something
}
于 2012-11-21T03:26:16.083 に答える
0
if (count(array_intersect)) { /* warning */ }
于 2012-11-21T03:27:07.890 に答える
0
$implode1 = "apple, orange, banana";
$implode2 = "banana, mango";

$implode1Array = explode(", ", $implode1);
$implode2Array = explode(", ", $implode2);

$result = array_intersect($implode1Array, $implode2Array);

if(count($result) > 0) {
    exit('Error!');
}
于 2012-11-21T03:21:33.340 に答える