内容简介:在数组中搜索给定的值,如果成功则返回首个相应的键名第一个参数表示要查找的值,第二个参数表示数组,第三个参数表示是否严格比较类型
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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Blog Design Solutions
Richard Rutter、Andy Budd、Simon Collison、Chris J Davis、Michael Heilemann、Phil Sherry、David Powers、John Oxton / friendsofED / 2006-2-16 / USD 39.99
Blogging has moved rapidly from being a craze to become a core feature of the Internetfrom individuals sharing their thoughts with the world via online diaries, through fans talking about their favori......一起来看看 《Blog Design Solutions》 这本书的介绍吧!