使用本机PHP功能比在PHP循环中做同样的事情更快吗?为什么?

 索马里7_244 发布于 2022-12-23 14:02

这是我一直想知道的事情.当使用本机PHP函数而不是PHP循环等效时,性能总是更好吗?为什么或者为什么不?

以下两个例子来说明这个问题:

假设我有一个包含1000个元素的大型数组.每个值只是一个整数用户ID.我想知道一个特定的用户标识是否在数组中,我碰巧知道它将朝向数组的末尾(因为它最近会被添加).我有两个选择:a)做一个foreach遍历整个数组的常规PHP 循环,直到找到用户ID,或者b)array_reverse()在数组上做一个并执行相同的foreach循环,直到找到id(如果它存在,它将结束这个循环更快).哪个更快?

我的直觉告诉我,第一个选项是更快,因为它做一个循环,而第二个选项是慢,因为在幕后,array_reverse()做某种类型的循环(C语言)的,因此需要两个循环的操作.

如果我有一个大的多维数组,其中每个值都是[messageid,message],那么使用foreach循环来查找id的特定消息会比将messageid设置为元素的关键并且做的更慢isset(array[messageid]) && array[messageid]吗?

编辑:只是为了澄清,我知道第一个例子可以使用array_search(),因为这是一个非常简单的例子.主要的问题不是哪一个更快(因为基准可以让我很容易地知道),但为什么,如同在幕后发生的事情一样?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有