What search algorithm does in_array() use?

From: 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; } ?>

« previous php.general (#247954) next »