欢迎访问宙启技术站
智能推送

PHParray_search()函数的用法

发布时间:2023-06-22 05:47:54

PHP中提供了array_search()函数用于查找一个值在数组中的位置,并返回对应的键名。

该函数的语法为:

array_search ( $needle , $haystack [, $strict ] )

其中,$needle表示我们要查找的值,$haystack是我们要查找的数组,$strict是一个可选的布尔值,表示是否进行严格比较,默认为false。如果$strict为true,那么函数会进行类型和值的比较。

使用该函数非常简单,只需要传入相应的参数即可,例如:

<?php

    $arr = array('apple', 'banana', 'orange');

    echo array_search('banana', $arr);  // 输出1

?>

以上代码中,$arr是一个含有三个元素的数组,我们使用array_search()函数查找其中的“banana”,输出了对应的键名1。

如果我们查找的值在数组中不存在,那么该函数会返回false:

<?php

    $arr = array('apple', 'banana', 'orange');

    echo array_search('pear', $arr);  // 输出false

?>

我们也可以在查找时进行严格比较,例如:

<?php

    $arr = array(1, '1');

    echo array_search(1, $arr);  // 输出0

    echo array_search(1, $arr, true);  // 输出false

?>

以上代码中,$arr是一个含有两个元素的数组,分别为数字1和字符串“1”。 行输出0,表示数字1在数组中对应的键名为0。第二行输出false,表示由于使用了严格比较,数字1和字符串“1”并不相等。

需要注意的是,在查找关联数组时,该函数只会返回 个找到的键名,如果要查找所有的键名,我们需要使用array_keys()函数。

最后,值得一提的是,该函数不仅可以用于查找数组中的值,还可以用于查找对象属性值。例如:

<?php

    class Person {

        public $name;

        public $age;

        public function __construct($name, $age) {

            $this->name = $name;

            $this->age = $age;

        }

    }

    $p1 = new Person('Tom', 20);

    $p2 = new Person('Jerry', 22);

    $arr = array($p1, $p2);

    echo array_search(20, $arr);  // 输出0

    echo array_search(22, $arr);  // 输出1

?>

以上代码中,我们创建了两个Person对象,并将它们存入数组中。然后通过array_search()函数,查找出$p1和$p2对应的键名为0和1。