add_action with associative array

You passed the action an associative array, so your hooked function will recieve an associative array. It’s a little clearer if we retype it like this:

$associative_array = array(
    'product_id' => $product_id ,
    'outbiddeduser_id' => $outbiddeduser,
    'log_id' => $log_id
);
do_action( 'woocommerce_simple_auctions_outbid',  $associative_array );

Thus:

add_action('woocommerce_simple_auctions_outbid', 'test', 10, 1);
function test( $associative_array ) {

It comes in as an array, because that’s what you passed through. There’s no magic unpacking of the array in do_action