foreach($ev as $evn){
$events[]=array("event"=>$evn['EVTID']);
}
输出:
Array ( [0] => Array ( [event] => 3 ) [1] => Array ( [event] => 2 ) )
我需要检查
if(in_array(3, $events, true)) {
echo "'3' found with strict check\n"
}
else {
echo "fail";
}
数组中存在3个元素,但结果失败
答案 0 :(得分:2)
您需要使用array_column
直接访问event
列中的值。试试这个:
if(in_array(3, array_column($events, 'event'), true)) {
echo "'3' found with strict check\n";
}
else {
echo "fail";
}
请注意,如果strict
参数设置为true,则3
的值将与字符串'3'
不匹配。如果您的数组中包含字符串值,则需要删除strict
检查,即
if(in_array(3, array_column($events, 'event'))) {
或将搜索值更改为'3'
,即
if(in_array('3', array_column($events, 'event'), true)) {
或者,您可以通过更改以下行来确保数组中的值为整数:
$events[]=array("event"=>$evn['EVTID']);
到
$events[]=array("event"=>(int)$evn['EVTID']);