PHP8中查询数组中指定元素-PHP8知识详解

php是使用最广泛的web编程语言数组是一个数据集合,数组是一种非常常用的数据类型。在操作数组时,有时我们需要查询数组中是否有某个指定元素。在实际的程序开发中,我们用到了下列方法来查询数组中指定的元素:使用array_search()函数、使用array_column()函数、使用in_array()函数、使用array_key_exists()函数、使用isset()函数等。

1、使用array_search()函数查询数组中指定元素

使用array_search()函数查询数组中指定元素,如果存在则返回键名,否则返回false。语法格式如下:

复制代码
array_search(要查找的值, 数组, 是否使用全等比较);

参考代码:

复制代码
<?php
    $s = "php";
    $study = array("s1"=>"https://www.phpfw.com/tag/html/", "s2"=>"css", "s3"=>"php", "s4"=>"https://www.phpfw.com/tag/mysql/");
    
    $key = array_search($s, $study);
    
    if ($key !== false) {
        echo "学习的课程已经找到,编号为:".$key;
    } https://www.phpfw.com/tag/else/ {
        echo "搜索完毕,没有找到需要的课程!";
    }
?>

以上代码在PHP8中运行的结果为:

复制代码
学习的课程已经找到,编号为:s3

这样,如果搜索成功,将打印课程的编号,否则将打印未找到的消息。

2、使用array_column()函数来查询数组中指定元素

在PHP 8中,你可以使用array_column()函数来查询数组中指定元素。该函数从二维数组中获取指定键的所有值,并返回一个新的一维数组。

以下是使用array_column()函数查询数组中指定元素的示例代码:

复制代码
<?php
$students = [
    ['name' => '明明', 'age' => 20],
    ['name' => '红红', 'age' => 25],
    ['name' => '亮亮', 'age' => 30]
];

// 查询所有学生的名字
$names = array_column($students, 'name');
echo "<pre>";
print_r($names);

// 查询年龄大于25岁的学生的名字和年龄
$filteredStudents = array_filter($students, function ($student) {
    return $student['age'] > 25;
});

// 提取年龄大于25岁学生的名字
$filteredNames = array_column($filteredStudents, 'name');
echo "<pre>";
print_r($filteredNames);
?>

以上代码在PHP8中的运行结果如下:

复制代码
Array
(
    [0] => 明明
    [1] => 红红
    [2] => 亮亮
)
Array
(
    [0] => 亮亮
)

3、使用in_array()函数来查询数组中指定元素

PHP中提供了in_array()函数,其作用是在数组中搜索指定的值。如果找到了该值,则返回TRUE,否则返回FALSE。

in_array()函数的语法如下:

in_array(要查找的元素, 要查询的数组, 是否使用严格模式)

严格模式表示数据类型也要匹配,而非严格模式只匹配值。因此,在数组查询中,我们通常使用非严格模式。

例如,我们有一个数组$a,包含元素"html"、"css"、"php",现在我们要查询是否存在元素"php"。代码如下:

复制代码
<?php
$a = array("html", "css", "php");

if (in_array("php", $a)) {
    echo "存在";
} else {
    echo "不存在";
}
?>

以上代码在PHP8中运行的结果为:

复制代码
存在

4、使用array_key_exists()函数来查询数组中指定元素

如果我们只需要查询一个数组中是否存在指定的键名,而不关心其对应的元素值,可以使用PHP中提供的array_key_exists()函数。

array_key_exists()函数的语法如下:

array_key_exists(键名, 数组)

参考代码:

复制代码
<?php
$c = array("1"=>"html", "2"=>"css", "3"=>"php");

if (array_key_exists("3", $c)) {
	echo "存在";
	} else {
    echo "不存在";
}
?>

以上代码,在PHP8中的运行结果如下:

复制代码
存在

5、使用isset()函数来查询数组中指定元素

此外,在PHP中还可以使用isset()函数来查询数组中是否存在指定元素。isset()函数判断变量是否已定义且非空。

isset()函数的语法如下:

isset(数组[索引])

其中,array表示要查询的数组,key表示要查找的元素。

例如,我们有一个数组$d,包含元素"php"、"mysql"、"html",现在我们要查询是否存在元素"php"。代码如下:

复制代码
<?php
$d = array("php", "mysql", "html");
if (isset($d[0])) {
echo "存在";
} else {
echo "不存在";
}
?>

以上代码在PHP8中的运行结果如下:

存在

到这为止,使用array_search()函数、使用array_column()函数、使用in_array()函数、使用array_key_exists()函数、使用isset()函数来查询数组中指定元素就讲解完毕了。

space

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
QQ5110082855 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
WeiXin_DZbishe5 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5