如何在 PHP 关联数组中搜索 – 快速提示

关联数组是 php 中的基本数据结构,允许开发人员存储键值对。它们用途广泛,通常用于表示结构化数据。在 php 关联数组中搜索特定元素是一项常见任务。但 php 中可用的最原生函数可以很好地处理简单的数组。

出于这个原因,我们经常必须找到允许我们在关联数组上执行相同操作的函数组合。可能没有内存不足错误?.

在本教程中,我们将探索在 php 关联数组中搜索值的各种方法和技术。

在关联数组中搜索键

array_key_exists() 函数检查关联数组中是否存在特定键。如果找到密钥则返回 true,否则返回 false。

$fruits = [    'apple' => 'red',    'banana' => 'yellow',];if (array_key_exists('banana', $fruits)) {    echo "the key 'banana' exists in the array.";} else {    echo "the key 'banana' does not exist in the array.";}

按关联数组中的值搜索

使用 array_search() 和 in_array()

array_search() 函数在关联数组中搜索值,如果找到则返回相应的键,如果没有找到则返回 false。

$colors = [    'apple' => 'red',    'banana' => 'yellow',];echo array_search('yellow', $colors); // print "banana"

您还可以使用具有更复杂数据的数组作为值:

$colors = [    'apple' => ['red'],    'banana' => 'yellow',];echo array_search(['red'], $colors); // print "apple"

这种情况我建议你使用严格比较模式。可以请求将第三个布尔参数传递给 array_search:

echo array_search(['red'], $colors, true);

与 array_search() 类似的是 in_array 函数,它只返回一个布尔标志而不是项目的键。

/* * it also supports strict mode comparison, useful for working with structured data as a value. */echo in_array(['red'], $colors, true); // return "true"

使用 foreach 循环

您可以使用 foreach 循环迭代关联数组并手动搜索特定值。当您需要进行复杂的比较或操作时,这非常有用,因为循环位于数组的同一范围内,因此您可以访问循环中的所有数据。

$targetvalue = 'yellow';foreach ($colors as $key => $value) {    if ($value === $targetvalue) {        echo "the value {$targetvalue} is associated with the key {$key}.";        break; // optional: stop searching after finding the occurrence.    }}

使用 array_filter()

array_filter() 函数可用于过滤数组并仅返回通过测试回调的元素。

$colors = [    'apple' => 'red',    'banana' => 'yellow',];$filteredarray = array_filter($colors, function ($value) {    return $value === 'red';});/* * it contains just one element: ['apple' => 'red'] * ‘banana’ was filtered out. */var_dump($filteredarray);

php 数组函数和 foreach 之间的性能基准

如果性能是您关心的问题之一,您肯定会发现本文的这一部分很有趣。

我制作了一个脚本,使用 array_map 和 foreach 循环对包含 200,000 个项目的数组执行简单操作。我使用 inspector 包来跟踪这两个语句的性能。您可以使用此沙箱中的代码:https://phpsandbox.io/e/x/5titt

$data = range(1, 200000);$inspector->addSegment(function () use ($data) {    array_map(fn($item) => $item * 3, $data);}, 'array_map');$data = range(1, 200000);$inspector->addSegment(function () use ($data) {    foreach ($data as $item) {        $data[$item] = $item * 3;    }}, 'foreach');

数十次执行表明 foreach 始终比 array_map 好大约 10%。

立即学习“PHP免费学习笔记(深入)”;

如何在 PHP 关联数组中搜索 – 快速提示

但是这个结果可能会根据上下文环境发生很大的变化。如果您在上面链接的沙箱中运行代码片段,您会发现 foreach 的效率比 array_map 高 10 倍。您可以将脚本复制到本地环境中并为自己做一些基准测试。

无论如何,foreach 通常比 array_map 更高效的原因是因为它并不意味着使用回调。调用函数比在同一范围内直接使用数组有更多的开销。因此,array_map 在每次迭代时都会浪费更多时间。但它仅对较大的数据集可见。数组越小,差距就越微不足道。

督察新人?免费监控您的应用程序

inspector 是一款专为软件开发人员设计的代码执行监控工具。您不需要在服务器级别安装任何东西,只需安装 composer 就可以开始了。

与其他复杂的一体化平台不同,inspector 超级简单,并且对 php 友好。您可以尝试我们的 laravel 或 symfony 包。

如果您正在寻找有效的自动化、深入的见解以及将警报和通知转发到消息传递环境的能力,请免费尝试 inspector。注册您的帐户。

或在网站上了解更多:https://inspector.dev

如何在 PHP 关联数组中搜索 – 快速提示

以上就是如何在 PHP 关联数组中搜索 – 快速提示的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1244706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 17:05:33
下一篇 2025年12月9日 17:05:47

相关推荐

  • PHP 函数如何获取输入数据?

    php 中获取输入数据的六种方法:$_get:获取 url 查询字符串中的数据$_post:获取 http post 请求中的数据$_files:获取上传文件的信息fopen():打开文件并返回文件指针shell_exec():执行命令行命令并返回输出exec():执行命令行命令并存储输出到变量中 …

    2025年12月9日
    000
  • PHP 函数如何获取 HTTP 标头?

    如何在 php 中获取 http 标头?使用 getallheaders() 函数获取所有 http 标头。函数返回一个包含所有标头键值对的关联数组。可以遍历标头数组来访问每个标头名和值。可用于验证请求是否包含特定标头。 使用 PHP 获取 HTTP 标头 在 PHP 中,可以使用 getallhe…

    2025年12月9日
    000
  • 什么是 PHP?为什么要学习它?

    如果您刚开始涉足 Web 开发领域,您很可能已经听说过 PHP。但 PHP 到底是什么?为什么它被如此广泛地使用?在这篇文章中,我们将探讨 PHP 成为开发人员的热门选择的原因、它的主要应用程序,以及为什么您应该考虑学习这种语言。 什么是 PHP? PHP最初代表“个人主页”,现在被称为“超文本预处…

    2025年12月9日
    000
  • win如何搭建php网站

    搭建 PHP 网站需要托管服务、文本编辑器和 Web 服务器。具体步骤包括:选择托管服务(共享虚拟主机、VPS 或专用服务器)。安装文本编辑器(记事本++、Sublime Text 或 Visual Studio Code)。安装和配置 Web 服务器(XAMPP、WAMP 或 IIS)。创建 PH…

    2025年12月9日
    000
  • php amqp 如何使用

    要使用 AMQP,您需要遵循以下步骤:安装 AMQP 库。使用代码建立与 AMQP 代理的连接。创建一个频道。声明一个交换器。声明一个队列。将队列绑定到交换器。发送消息。使用回调函数接收消息。关闭连接。 PHP 中使用 AMQP 的方法 前言AMQP(高级消息队列协议)是一种广泛使用的消息队列协议,…

    2025年12月9日
    000
  • Laravel 开发服务:为您的项目选择合适的合作伙伴

    ** 介绍 **在 Web 开发领域,Laravel 已成为创建强大且可扩展的应用程序的领先 PHP 框架。然而,Laravel 项目的成功很大程度上取决于选择正确的开发合作伙伴。本文可作为您为项目成功选择完美 Laravel 开发合作伙伴的过程的指南。 了解您的项目要求在开始寻找 Laravel …

    2025年12月9日
    000
  • php寄生虫有哪些

    PHP 应用程序容易受到寄生虫攻击,包括 SQL 注入、跨站脚本、文件包含和远程代码执行。保护方法包括:1. 验证用户输入;2. 转义输出;3. 使用安全框架;4. 安装防火墙;5. 定期更新;6. 遵循安全编码实践。通过这些措施,PHP 应用程序可以降低寄生虫利用风险,确保 Web 应用程序的安全…

    2025年12月9日
    000
  • 在 Web 应用程序中安装和使用 Laravel 的综合指南

    Laravel 11 于 2024 年升级/发布,一直在不断发展成为一个强大的 Web 应用程序和 PWA 的 PHP 框架。本指南将引导您有效地完成设置和使用 Laravel 11 的过程,以充分利用这个强大的框架,它使我们作为开发人员的生活变得更加轻松。它不断为我们提供令人惊叹且强大的工具来构建…

    2025年12月9日
    000
  • php如何识别图片是否ps

    通过使用 PHP 和 Forensicskit 库,我们可以检测图像是否经过 PS 处理:安装 Forensicskit 库并创建 ExtractionEngine 实例。提取图像元数据并检查 ExifTool 和 Photoshop 字段以获取编辑信息。如果 Photoshop 字段存在,表示图像…

    2025年12月9日
    000
  • Laravel 入门:您的第一个应用程序

    laravel 是最流行的 php 框架之一,因其优雅的语法、丰富的功能集和易用性而受到开发人员的喜爱。如果您是 laravel 新手,甚至是 web 开发新手,那么构建您的第一个 laravel 应用程序是深入了解现代 php 开发世界的好方法。本指南将引导您了解设置第一个 laravel 应用程…

    2025年12月9日
    000
  • 尝试进入 Laravel 依赖注入

    singleton(ClassInterface::class, T1Impl::class); $out1 = app(ClassInterface::class)(); $this->assertEquals(“T1?”, $out1); app()->bind(ClassInter…

    2025年12月9日
    000
  • Laravel htaccess 基本指南:为什么、如何以及它能为您的应用程序做什么

    介绍 当涉及到使用 laravel 构建健壮的 web 应用程序时,.htaccess 文件通常扮演着默默无闻但至关重要的角色,特别是当您将项目托管在 apache 服务器上时。虽然它看起来只是另一个配置文件,但理解和利用 .htaccess 文件可以极大地增强应用程序的安全性、性能和整体功能。 在…

    2025年12月9日
    000
  • PHP都有哪些工具

    PHP 开发工具主要包括文本编辑器(如 Sublime Text、Visual Studio Code、PHPStorm)、Web 框架(如 Laravel、CodeIgniter、Symfony)、包管理工具(如 Composer、Packagist)、调试工具(如 Xdebug、Blackfir…

    2025年12月9日
    000
  • php插件都有哪些

    PHP插件是一种扩展,可用于扩展PHP功能,而无需修改PHP源代码。PHP提供了内置插件和Composer包等插件类型。优点包括可扩展性、代码可重用性、模块化和丰富的社区支持。插件可通过内置、扩展或Composer包加载。示例包括使用strtoupper()函数将字符串转换为大写和使用mysqli扩…

    2025年12月9日
    000
  • 有哪些php社区

    PHP 社区为开发人员提供支持、资源和连接:官方资源:PHP.net(官方网站)、PHP Foundation(非营利组织)论坛和讨论组:Stack Overflow(问答社区)、PHPBB.com(论坛)、IRC(实时聊天频道)社交媒体:Twitter(话题)、GitHub(项目和讨论)、Link…

    2025年12月9日
    000
  • php项目都有哪些

    PHP 项目实例涵盖广泛领域,包括:内容管理系统(CMS),如 WordPress、Joomla 和 Drupal。电子商务平台,如 Magento、WooCommerce 和 Shopify。论坛和社区软件,如 phpBB、Discourse 和 SMF。社交网络平台,如 Yiibu、Elgg 和…

    2025年12月9日
    000
  • php需要哪些工具

    PHP 开发所需工具包括:文本编辑器或 IDE(如 Sublime Text、PHPStorm)Web 服务器(如 Apache、Nginx)数据库管理系统(如 MySQL、PostgreSQL)PHP 解释器调试工具(如 XDebug、Var-Dump)版本控制系统(如 Git、Subversio…

    2025年12月9日
    000
  • php后端包括哪些

    PHP 后端技术栈由一系列工具和框架组成,用于创建和维护 PHP 应用程序,其主要组件包括:框架(Laravel、Symfony、CodeIgniter)数据访问(Doctrine ORM、Propel ORM、PDO)模板引擎(Twig、Blade、Smarty)部署(Composer、Docke…

    2025年12月9日
    000
  • 使用自动加载翻译在 Laravel 中构建多态可翻译模型

    处理多语言内容时,将翻译存储在 json 列中通常比每个属性的单独行更有效。这种方法将翻译整合到单个列中,简化了数据管理和检索。 设置翻译系统 我们将增强翻译模型和表,以使用 json 列来存储翻译。这将涉及更新表架构并修改 translatable 特征以处理 json 数据。 第 1 步:创建翻…

    2025年12月9日
    000
  • 如何通过验证令牌在 PHP 中设置电子邮件验证:完整指南

    电子邮件验证是确保电子邮件地址存在并且可以接收电子邮件的过程。鉴于,电子邮件验证会检查地址格式是否正确;也就是说 – 根据特定标准(例如 utf-8)编写。  在本文中,我将讨论 php 电子邮件验证以及如何将其用于 web 开发和通过验证令牌进行用户身份验证。文章涉及一些微教程,包括:…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信