【发布时间】:2023-03-04 18:51:01
【问题描述】:
可能重复:
What’s quicker and better to determine if an array key exists in PHP?
假设我想将我的好友列表存储在内存缓存中。 有时我需要搜索用户是否在我的列表中,有时我需要获取所有朋友列表。
你愿意
$friends[] = $friend
或
$friends[$friend] = 1;
基本原理是在不影响速度的情况下尽可能多地节省内存。 我没有找到任何可以帮助我解决小困境的 php 5.3.8 案例研究: 在负载下,哪个执行速度更快?
array_key_exists 还是 in_array? (即:foo 是 bar 的朋友吗?)
另外,有时我需要获取整个朋友列表,所以我需要迭代整个列表以构建朋友数组。完全不确定第二种方法,因为我还不知道是否会有更多的 array_search|array_key_exists|in_array 或获取完整的朋友列表。
有什么想法吗?
【问题讨论】:
-
您是否尝试过自己制作基准脚本并对其进行测试?这也是 SO 上几乎所有其他 php 数组速度问题的副本......
-
还没有,我当然可以对此做一些基准测试。我很想知道是否有人真的可以争论这里的良好做法应该是什么。我将发布基准
-
良好实践很大程度上取决于您所处的环境。我以前因为我的环境因素不同而被别人追随(什么有效)而被烧毁。 (+当你自己做东西时你会发现令人惊讶的东西)
-
@DaveRandom 不是骗子,因为
array_search()和array_key_exists()做不同的事情 :) -
@Jack
array_search从一开始就没有地方可待。
标签: php arrays performance