2014-10-25 2 views
1

Есть ли разница в O (n) следующих операций?Проверка работоспособности массива PHP-массива против проверки значений существования

$a1 = [1=>'',2=>'', 3=>''] 
isset($a1[2]) 

$a2 = [1,2, 3] 
in_array(2, $a2) 
+1

[in_array] (HTTP://php.net/manual/en/function.in-array.php) для значений ... sooo ... они не предназначены для одного и того же. –

+1

это моя догадка ... 'isset' быстрее, потому что' in_array() 'должен смотреть на значения. 'isset' просто хочет знать, существует ли этот индекс независимо от того, что он на самом деле имеет. –

+2

Возможный дубликат [что быстрее: в \ _array или isset?] (Http://stackoverflow.com/questions/13483219/what-is-faster-in-array-or-isset) – rjdown

ответ

2

isset($a1[2]) имеет сложность O (1)
in_array(2, $a2) имеет сложность O (3) в вашем случае или в общем O (N), где N = count_of_the_array элементы

Смежные вопросы