简介
搜索数组中是否存在指定的值。
例如:某数组中存放了无规律的特定的日期,可以使用in_array函数来查看当天日期是否包括在该数组,以此来决定下一步执行什么。
所属类型
in_array属于array数组函数。
语法
in_array(search,array,type)
参数说明:
search是要搜索的值,array是被搜索的数组,这两个参数是必须的;
type是可选的,如果设置为true,则检查搜索的数据与数组的值的类型是否相同,当search的值是字符串时,开启type搜索区分大小写。
返回值
如果在数组中找到值则返回 TRUE,否则返回 FALSE。
示例
<?php
header("Content-Type:text/html;charset=utf-8");
$team = array("king", "next", "it", "jeinyang","2019");
if (in_array("King", $team, TRUE)){
echo "匹配已找到<br>";
}else{
echo "匹配未找到<br>";
}
if (in_array(2019,$team,TRUE)){
echo "匹配已找到<br>";
}else{
echo "匹配未找到<br>";
}
?>
运行结果:
匹配未找到
匹配未找到
注意事项
参数type开启时搜索区分大小写这个功能,本人在使用时并没有发现有什么区别,有待进一步测试。而值类型在示例的第二个条件判断里能体现出来。
应用经验
在设计SteelEC的工作日时间判断时,曾考虑过调用网上的API省事,不过基于大多数免费API的质地,还是放弃了,自己费事点写一个吧。
于是便根据国家发布的年度节假日通知,做了这个功能。在这里就用到了in_array这个函数。
<?php
function checkTime(){
$timeSet = $config['timeset'];
//读入系统参数,这是个数组,包含假日holiday 、调休adjust
$dayNow = date('Ymd',$_SERVER['REQUEST_TIME']);
//判断是否假日
if(in_array($dayNow,$timeSet['holiday'])){
return false;
}
}
?>
这是日期时间检测方法的一部分,其他条件判断大致相同。
这里说说timeSet这个变量,这个变量保存的是法定节假日及调休的日期数组。这个日期数组可以是保存在数据库里的,也可以是写死在脚本文件里的,数据库里更灵活,但是要开发设置界面,而且效率低于写入文件,按需选择吧。
写入数据库时可以将数组序列化保存,读取时再发序列化,序列化和反序列化可以参考相应笔记。
参考材料
相关函数
array_search():在数组中搜索指定值,如存在则返回相应的键名,不存在则返回false。
网友评论