关于正确使用PHP的in_array数组

本文介绍了PHP中的in_array函数,展示了如何使用此函数来查找数组中是否存在特定值,并解释了第三个可选参数的作用,即是否进行类型严格匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

in_array数组误区


官方实例

  • 在数组中搜索值 “Mark” ,并输出一些文本:
<?php
$people = array("Bill", "Steve", "Mark", "David");

if (in_array("Mark", $people))
  {
  echo "匹配已找到";
  }
else
  {
  echo "匹配未找到";
  }
?>

运行实例

匹配已找到

今天在公司写代码的时候突然用到了in_array()函数,就是为了搜索数组中是否存在指定的值。现提取部分代码如下:

<?php
	//判断某定制产品是否在数组中
	$search = '68226:dscsdsdgwsdggocs'; //某定制产品
	$data = array(
		39578,68226,48257
	);
	if(in_array($search,$data)){
		echo '匹配已找到';
	}else{
		echo '匹配未找到';
	}
?>

运行结果

匹配已找到

后来我查看了一下文档,还有第三个参数(可选参数:强制对数据类型进行检测)。

hello world !

语法

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
参数描述
needle必需。规定要在数组搜索的值。
haystack必需。规定要搜索的数组。
strict可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

说明

如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。

如果没有在数组中找到参数,函数返回 false。

注释:如果 search 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。

总结

第三个参数默认为 false,当 needle 和 haystack 中的元素比较时会进行类型转换,相当于使用 == 进行比较。如果我们填写第三个参数为true那么就相当于使用===来进行比较,所以我们应该根据当前的环境来进行判断第三个参数是否进行填写。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值