Had exactly the same problem here then I realised the issue – instead of using 0-based indexing of the arrays, it requires an associative array with named keys, thus;
using the example from @cocosay, the array was like this
array_push( $stores, array('value' => $email, 'option' => $option)
but needs to be constructed like this, within a loop, as it will build up the array of options and values with named keys rather than 0,1,2 etc
$stores[$email] = $option;
The same is also true if passing other arrays to this function, such as custom_attributes