Consider the following test code: <?php $myArray = array(); for( $i = 0; $i <= 10000; $i++ ) { $date = microtime( TRUE ); $key = rand( $date, $date * rand( 1, 5000 )); $myArray[$key] = $key; } echo '$myArray items created: ' . count( $myArray ) . '<br><br>'; $startTime = microtime( TRUE ); $foundCount = 0; for( $i = 0; $i <= 10000; $i++ ) { $date = microtime( TRUE ); $key = rand( $date, $date * rand( 1, 5000 )); if( array key exists( $key, $myArray )) { $foundCount++; } } $endTime = microtime( TRUE ); echo 'array key exists took [' . ( $endTime - $startTime ) . '] seconds; found: [' . $foundCount . '] keys<br><br>'; $startTime = microtime( TRUE ); $foundCount = 0; for( $i = 0; $i <= 10000; $i++ ) { $date = microtime( TRUE ); $key = rand( $date, $date * rand( 1, 5000 )); if( isset( $myArray[$key] )) { $foundCount++; } } $endTime = microtime( TRUE ); echo 'isset took [' . ( $endTime - $startTime ) . '] seconds; found: [' . $foundCount . '] keys<br><br>'; $startTime = microtime( TRUE ); $foundCount = 0; for( $i = 0; $i <= 10000; $i++ ) { $date = microtime( TRUE ); $key = rand( $date, $date * rand( 1, 5000 )); if( $myArray[$key] ) { $foundCount++; } } $endTime = microtime( TRUE ); echo 'IF() took [' . ( $endTime - $startTime ) . '] seconds; found: [' . $foundCount . '] keys<br><br>'; ?> Running that I found that if( isset( $myArray[$key] )) is faster than if( array key exists( $key, $myArray )) is faster than if( $myArray[$key] ) To be honest, I was surprised. I would have thought that if( $myArray[$key] ) would have been the fastest way to check. I'm wondering if those in the know could explain why it's the slowest and also where the discrepancies come from w/r/t the difference in the amount of time it takes to make each check. thnx, Chris