博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP从数组中找到指定元素的位置
阅读量:6232 次
发布时间:2019-06-22

本文共 892 字,大约阅读时间需要 2 分钟。

 群里有人问,有个数组五个元素 分为1到5  现在要求 循环找出3元素的索引,怎么做性能才是最高。 

 我不知道哪个性能最高,但是我想提出可以用多种方式进行查找,然后进行比较选择。

我想,最简单最基础的 应该是循环,循环到它,那就是它。当然也可以用PHP提供的数组查找 array_search。这都是能想得到的,那么我想说的是,剑走偏锋,老铁是否尝试过 键值反转进行查找呢?

array_flip键值反转,能够将你需要的键变值,值变键,然后取数组下标,即可得到这个位置。

代码如下:

$v) { if($v==$find) { return $key; } }}//第二种方式 利用数组查找 找到所需要元素的索引位置function find_by_array_search($array,$find){ return array_search($find,$array);}//第三种方式 键值反转 通过值查找键function find_by_array_flip($array,$find){ $array=array_flip($array); return $array[$find];}var_dump(find_by_foreach($array,$find));var_dump(find_by_array_search($array,$find));var_dump(find_by_array_flip($array,$find));

效果如图: 

好,我们再考虑一个问题,刚刚我们都在用数组的思维进行解决问题,如果说,这个数组不想被循环,或者放弃数组的思路又该如何解决呢?

很自然,我们可以想到依靠字符串。那么字符串的函数也是非常多的,PHP在这方面的功劳是不遗余力。

代码如下:

效果如图:

针对本题而言,字符串查找是可行的,但是如果换一个场景,数组中出现了重复或者要查找的元素,不能出现完整匹配的情况的时候,这个查找就是失败的,请思考一下这是为什么。

 

转载地址:http://dqqna.baihongyu.com/

你可能感兴趣的文章
【转】批处理常用符号详解
查看>>
Uncaught TypeError: jQuery.i18n.browserLang is not a function
查看>>
JavaScript中的闭包详解
查看>>
【JSP】JSP Action动作标签
查看>>
iOS:CoreText的常用语法
查看>>
dropify,不错的图片上传预览插件
查看>>
为什么都不写博
查看>>
希腊字母表
查看>>
httpd配置文件httpd.conf规则说明和一些基本指令
查看>>
python中self cls init的理解
查看>>
java:类集操作总结
查看>>
Flake8学习
查看>>
SpringBoot项目eclipse运行正常maven install打包启动后报错ClassNotFoundException
查看>>
ASP.NET Core的身份认证框架IdentityServer4(9)-使用OpenID Connect添加用户认证
查看>>
[Python] String Formatting
查看>>
lapis 处理接收到的json 数据
查看>>
【spring boot logback】日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么...
查看>>
Ad Hoc Distributed Queries的启用与关闭
查看>>
java工具类POI导出word
查看>>
openwrt使用list
查看>>