php array_search

栏目: PHP · 发布时间: 5年前

内容简介:在数组中搜索给定的值,如果成功则返回首个相应的键名第一个参数表示要查找的值,第二个参数表示数组,第三个参数表示是否严格比较类型

php array_search

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

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

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

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

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

<?php

$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 中出现不止一次,则返回第一个匹配的键

看下面的示例代码

<?php

$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。所以要判断是否 未找到 ,应该用 === 来判断结果

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

看下面的示例代码

<?php

$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']


以上所述就是小编给大家介绍的《php array_search》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

第三次浪潮

第三次浪潮

托夫勒 / 黄明坚 / 中信出版社 / 2006-6 / 38.00元

《第三次浪潮》作者托夫勒在20多年前预见的未来是:跨国企业将盛行;电脑发明使SOHO(在家工作)成为可能;人们将摆脱朝九晚五工作的桎梏;核心家庭的瓦解;DIY(自己动手做)运动的兴起……时过境迁,如今我们才发现托夫勒的预言竟大多已成为了现实。   20年前的《第三次浪潮》在打开国门之初给人们心灵造成的冲击,其影响至今仍然连绵不绝。托夫勒在这本书中将人类社会划分为三个阶段:第一次浪潮为农业阶段......一起来看看 《第三次浪潮》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试