Yes, it is perfectly possible to create byte arrays in PHP - PHP's strings are binary-safe so they can contain any sequence of bytes - a JPEG header for example starts with "\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46" (where the last four bytes could have been written "JFIF". Or of course you could have an actual array containing the [man]ord[/man] values of those characters: array(0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46), but string storage would be much more efficient.
You may want to look at [man]pack[/man]/[man]unpack[/man] to see if they'll make things more convenient.