Any string is suitable as an array index. There are no special characters you need to care about, since PHP is not trying to parse these strings or otherwise get any "meaning" from them. Strings are binary blobs to PHP, any binary string blob will do.
$array[mcrypt_create_iv(1024, MCRYPT_DEV_RANDOM)] = 'foo';
$array[file_get_contents('bar.jpg')] = 'bar';
$array["\x00\x01\x02\x03"] = 'baz';