【发布时间】:2015-08-31 00:05:33
【问题描述】:
有时我在 PHP 中做了很多工作。大海捞针。
$names = [
'Mike',
'John',
'Dave',
'Tony'
];
$gotDave = in_array('Dave', $names);
in_array 的运行时间是 O(n),其中 n 是元素的数量。
我经常将我的查找数据结构设置为如下所示。
$names = [
'Mike' => true,
'John' => true,
'Dave' => true,
'Tony' => true
];
$gotDave = isset($names['Dave']);
运行时间是 O(1),因为在 php 中关联数组是一个哈希图。
一些问题:
- 我应该这样做吗?这是一种好的做法吗?
- 右手骑行是否更划算
【问题讨论】:
-
就我个人而言,这不能怪..
-
只是出于好奇:“in_array 的运行时间是
O(n)”是什么意思?O代表什么? -
@D4V1D 它叫大哦符号。你可以用谷歌搜索更多信息。
-
请注意,这并不是真正的一对一,因为您无法从
['Mike', 'Mike']创建第二个数组 -
@Uchiha 是什么意思?是的,它比编写文字要慢一些,但我认为与键查找相比,数组初始化很少发生。