What search algorithm does in_array() use?
| From: | Ken Dozier | Date: | Mon, 29 Jan 2007 17:20:58 +0000 |
| Subject: | What search algorithm does in_array() use? | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-247954@lists.php.net to get a copy of this message | ||
Does in_array() use a search algorithm (i.e., binary search), or does it
check sequentially each element in the array?
I am using in_array() within a while{} loop to check query results against
an access-list array to produce a third array containing items that
successfully passed the comparison test. Because the two starting arrays in
the worst-case scenario can have 8,000 items each, the loop is timing out.
Advice or alternative methods are appreciated.
Code Sample:
<?php
function check_results($results, $access_list)
{ # Check for $results in array $access_list and
# add matches to array $match.
$result = false;
$match = array();
while ($r = mysql_fetch_row($results))
{ if ( in_array($r[0], $access_list) )
{ $match[] = $r; }
}
if ( count($match) > 0 ) { $result = $match; }
return $result;
}
?>