array_search php,php array_search

php array_search

在数组中搜索给定的值,如果成功则返回首个相应的键名

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )

第一个参数表示要查找的值,第二个参数表示数组,第三个参数表示是否严格比较类型

严格比较类型 vs 不严格比较类型的区别

看一下严格比较类型与不严格比较类型的区别

$arr = ['0', 1, '2', '1'];

$result = array_search('1', $arr);

var_dump($result);

$result = array_search('1', $arr, true);

var_dump($result);

打印出来结果如下:

int(1)

int(3)

不严格比较类型的时候,在数组里面找到了数字1,判断和要找的字符串'1'是相等的,就返回了它的键

当找不到指定值的时候

如果找到了 needle, 则返回它的键,否则返回 FALSE。如果 needle 在 haystack 中出现不止一次,则返回第一个匹配的键

看下面的示例代码

$arr = ['4', '3', '2', '1'];

$result = array_search('4', $arr);

var_dump($result);

var_dump((false == $result));

var_dump((false === $result));

if (false === $result) {

var_dump('not found');

}

打印出结果如下:

int(0)

bool(true)

bool(false)

看上面的示例代码,要找的字符串'4'的键是0。如果不严格对比类型的话,false == 0是true, 如果严格对比类型的话,false == 0是true, false === 0才是false。所以要判断是否未找到,应该用===来判断结果

上面演示的是查找字符串或者数字,其实数组里面的键对应的值还可以是其他类型,比如说也是数组。

看下面的示例代码

$arr = [

'4',

'3',

'2',

'1',

['a', 'b']

];

$result = array_search(['a', 'b'], $arr);

var_dump($result);

$result = array_search(['b', 'a'], $arr);

var_dump($result);

打印结果是:

int(4)

bool(false)

['a', 'b']与['b', 'a']是不同的,['a', 'b']实际是[ 0 => 'a', 1 => 'b'],而['b', 'a']实际是[ 0 => 'b', 1 => 'a']

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值