一:简单使用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);