热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php中数组的搜索程序代码

在php中简单数据搜索很简单我们直接使用in_array()函数在数组中搜索给定的值即可,这种是简单的一维数据,例如下代码:<?php$peoplearray("

在php中简单数据搜索很简单我们直接使用in_array() 函数在数组中搜索给定的值即可,这种是简单的一维数据,例如下代码:

  1. $people = array("Peter""Joe""Glenn""Cleveland"); 
  2. if (in_array("Glenn",$people)) 
  3.   { 
  4.   echo "Match found"
  5.   } 
  6. else 
  7.   { 
  8.   echo "Match not found"
  9.   } 
  10. ?> 

输出:Match found。

array_key_exists()函数

如果在一个数组中找到一个指定的键,函数array_key_exists()返回true,否则返回false,其形式如下:

boolean array_key_exists(mixed key,array array);

下面的例子将在数组键中搜索apple,如果找到,将输出这个水果的颜色,代码如下:

  1. $fruit["apple"] = "red";  
  2.  $fruit["banana"] = "yellow";  
  3.  $fruit["pear"] = "green";  
  4.  if(array_key_exists("apple"$fruit)){  
  5.   printf("apple&#39;s color is %s",$fruit["apple"]);  
  6.  } 

执行这段代码得到的结果:apple&#39;s color is red

array_search()函数,代码如下:

  1. $fruits["apple"] = "red"
  2. $fruits["banana"] = "yellow"
  3. $fruits["watermelon"]="green"
  4. $founded = array_search("green"$fruits); 
  5. if($founded)  
  6.  printf("%s was founded on %s.",$founded$fruits[$founded]) 

array_keys()函数,代码如下:

  1. $fruits["apple"] = "red"
  2. $fruits["banana"] = "yellow"
  3. $fruits["watermelon"]="green"
  4. $keys = array_keys($fruits); 
  5. print_r($keys); 

上面的方法都只能搜索一维数据,如果是多维数据就没办法了,php搜索多维数组的键值,如下面例子:

  1. $foo[1][&#39;a&#39;][&#39;xx&#39;] = &#39;bar 1&#39;
  2. $foo[1][&#39;b&#39;][&#39;xx&#39;] = &#39;bar 2&#39;
  3. $foo[2][&#39;a&#39;][&#39;bb&#39;] = &#39;bar 3&#39;
  4. $foo[2][&#39;a&#39;][&#39;yy&#39;] = &#39;bar 4&#39;
  5. $foo[3][&#39;c&#39;][&#39;dd&#39;] = &#39;bar 3&#39;
  6. $foo[3][&#39;f&#39;][&#39;gg&#39;] = &#39;bar 3&#39;
  7. $foo[&#39;info&#39;][1] = &#39;bar 5&#39;

如果要查找 bar 3 怎么进行查找呢,有三个结果,而这三个结果都要,看下面的函数:

  1. function array_search_re($needle$haystack$a=0, $nodes_temp=array()){ 
  2. global $nodes_found
  3. $a++; 
  4. foreach ($haystack as $key1=>$value1) { 
  5.     $nodes_temp[$a] = $key1
  6.     if (is_array($value1)){    
  7.       array_search_re($needle$value1$a$nodes_temp); 
  8.     } 
  9.     else if ($value1 === $needle){ 
  10.       $nodes_found[] = $nodes_temp
  11.     } 
  12. return $nodes_found

这个函数就可以把上面要查找到的内容全部返回出键名来,代码如下:

  1. $result = array_search_re(&#39;bar 3&#39;$foo); 
  2. print_r($result); 
  3. //输出结果为如下: 
  4. Array ( [0] => Array ( [1] => 2 [2] => a [3] => bb ) 
  5.           [1] => Array ( [1] => 3 [2] => c [3] => dd ) 
  6.           [2] => Array ( [1] => 3 [2] => f [3] => gg ) 
  7.         ) 

php搜索多维数组的键名,代码如下:

  1. function array_search_key($needle$haystack){ 
  2. global $nodes_found
  3. foreach ($haystack as $key1=>$value1) { 
  4.  
  5.  if ($key1=== $needle){ 
  6.  
  7.   $nodes_found[] = $value1
  8.         
  9.    } 
  10.     if (is_array($value1)){    
  11.       array_search_key($needle$value1); 
  12.     } 
  13.     
  14.     
  15. return $nodes_found
  16. $result = array_search_key(&#39;a&#39;$foo); 
  17. print_r($result); 

输出结果为如下:

  1. Array 
  2.     [0] => Array 
  3.         ( 
  4.             [xx] => bar 1 
  5.         ) 
  6.     [1] => Array 
  7.         ( 
  8.             [bb] => bar 3 
  9.         ) 
  10.     [2] => Array 
  11.         ( 
  12.             [yy] => bar 4 
  13.         ) 

通过遍历我们可以实现多维数据搜索了.


推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文详细介绍了如何在PHP中实现基于概率的随机抽奖功能。通过实例代码,解释了抽奖逻辑、奖品设置及结果统计的方法。适合PHP开发者参考学习。 ... [详细]
  • 本文对宋代词人朱雍的《迷神引》进行翻译和赏析,深入探讨其词作的艺术特色与情感表达。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文介绍如何使用PHP在WordPress中根据分类类别ID或名称获取所有相关文章,提供详细的方法和代码示例。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文详细介绍了如何使用 PHP 接收并处理微信支付的回调结果,确保支付通知能够被正确接收和响应。 ... [详细]
  • 小编给大家分享一下如何移除URL中的index.php,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收 ... [详细]
  • 本文详细介绍了如何在PHP中删除数组中的指定元素、第一个元素和最后一个元素,并提供了具体的代码示例和相关函数的使用说明。 ... [详细]
author-avatar
星空下的舞者j
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有