php数组查找的几种方法

5 篇文章 0 订阅

一:简单使用foreach查找

 查找结果 $flag 为true 则存在,为false 则不存在

<?php

$codeArr = [1,2,3,4,5,6,7,8,9,10];

$name = 13;

$flag = false;

foreach ($codeArr as $key => $value) {
	if($value == $name){
		$flag = true;
	}
}

var_dump($flag);

?>

二:直接使用php内置函数in_array查找,建议使用php >=7.4版本,如果只有一个if 建议使用内置php7三元运算表达式 ?? ,而不是使用if。

$codeArr = [1,2,3,4,5,6,7,8,9,10];

$find = 3;

$flag = in_array($find, $codeArr) ?? null;

var_dump($flag);

三:使用php自带的函数查找,使用匿名函数也叫闭包函数(closures),并向匿名函数中传入外部定义的参数。

  查找结果如果为:null 则不存在 ,如果存在则返回查找的数据

<?php

$codeArr = [1,2,3,4,5,6,7,8,9,10];

$name = 13;
$ts = array_values(array_filter($codeArr,function($value) use ($name){
   return $value == $name;
},ARRAY_FILTER_USE_BOTH))[0] ?? null;

var_dump($ts);

?>

四:哈希表查找法(也叫散列表查找)

 先使用php array_flip反转数组,判断需要查找的数字是否在数组的key中,查找结果 $flag 为true 则存在,为false 则不存在

$codeArr = [1,2,3,4,5,6,7,8,9,10];

$neCodeArr = array_flip($codeArr);

$find = 30;

$flag = isset($neCodeArr[$find]) ?? null;


var_dump($flag);

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值