【发布时间】:2013-04-10 21:53:21
【问题描述】:
我不知道该用什么:
foreach(){
// .....
if(!in_array($view, $this->_views[$condition]))
array_push($this->_views[$condition], $view);
// ....
}
或
foreach(){
// .....
array_push($this->_views[$condition], $view);
// ....
}
$this->_views[$condition] = array_unique($this->_views[$condition]);
更新
目标是获取唯一值的数组。这可以通过每次检查值是否已经存在in_array 或每次添加所有值并最终使用array_unique 来完成。那么这两种方式有什么大的区别吗?
【问题讨论】:
-
阅读文档,
array_unique删除给定数组中的重复值...in_array提供对数组值的搜索,如果找到/未找到则返回真/假 -
@DarylGill 我知道这个函数的作用,但我想知道提供的示例中哪个更好
-
你没有提供足够的信息,为什么你会被这两个函数卡住,它们在什么环境下被使用等等
-
@DarylGill 的目标是获取唯一值数组。我可以通过每次检查值是否已经存在
in_array或每次添加所有值并在使用后添加所有值array_unique -
信封背面告诉我 array_unique 更好。每次检查
in_array时应该是O(n) + O(n log(n))而不是O(n^2)
标签: php arrays array-unique