关于in_array问题
说明
in_array()
函数搜索数组中是否存在指定的值。
语法
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
参数 | 描述 |
---|---|
needle | 必需。规定要在数组搜索的值。 |
haystack | 必需。规定要搜索的数组。 |
strict | 可选。如果该参数设置为 TRUE,则 in_array() 函数检查搜索的数据与数组的值的类型是否相同。 |
- 返回值:如果在数组中找到值则返回 TRUE,否则返回 FALSE。
例子
$sku = '10051994-1';
$arr = ['10051994','10052770','10062518'];
if(!in_array($sku,$arr)){
echo '不匹配';
}else{
echo '匹配';
}
//输出结果:不匹配
$sku = '10051994-1';
$arr = [10051994,10052770,10062518];
if(!in_array($sku,$arr)){
echo '不匹配';
}else{
echo '匹配';
}
//输出结果:匹配
小结
$sku = '10051994-1';
$rs = (int)$sku;
echo $rs;
//输出结果:10051994
- sku是字符串类型,数组里是int类型,in_array的时候sku会被转为int类型,'10051994-1' 转int类型截取数字部分就变成了 10051994 就匹配上了