我在PHP中有2个数组:
print_r($vid); // contain array data
print_r($vidDB); // contain array data
输出结果为:
Array
(
[0] => 7
)
Array
(
[0] => 5
[1] => 4
[2] => 6,7
)
现在,我需要检查变量$vid
中是否存在7 (来自变量$vidDB
)。
如何使用PHP执行此操作?
我试过
array_intersect($vid, $vidDB)
但没有运气:(
答案 0 :(得分:1)
您可以使用preg_grep。
如果您有多个搜索值,我会使用implode($ vid)
使用[]
编辑正则表达式中替换\b
以修复Nigel指出的内容。
$vid = [7];
$vidDB = [5,4,"6,71"];
$return = preg_grep("/\b" . implode("\b|\b", $vid) . "\b/", $vidDB);
Var_dump($return);
如果$ return有任何值,那么它是真的
因此,您可以使用if(count($return) >0)
作为您的真/假声明
编辑:具有多个搜索值和真/假输出:https://3v4l.org/3VB3a
if(count($return) >0){
Echo "true";
}Else{
Echo "false";
}
答案 1 :(得分:1)
您可以使用Route::resource('posts', 'PostController');
和implode
组合列出explode
上的所有数组。您可以使用$vidDB
查找公共数组元素
array_intersect
答案 2 :(得分:0)
由于7是数组中的字符串,所以我不认为你可以使用简单的php函数。你最好创建一个循环遍历vidDB数组的函数,并使用explode(‘,’, $vidDB[i])
来检查字符串中是否存在七个。
我不确定你是如何选择7作为第二个阵列中要搜索的数字。
答案 3 :(得分:0)
这可能是您正在寻找的
CREATE TRIGGER `insert_seance` BEFORE INSERT ON `seance` FOR EACH ROW
BEGIN
IF (NEW.`Date/time` < CURRENT_TIMESTAMP)
THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error for updating values';
END IF;
END