如何在php中将整数转换为字节数组

use*_*060 15 php bytearray

如何将整数转换为4个字节的数组?

这是我想要移植的确切代码(在C#中)

int i = 123456;
byte[] ar = BitConverter.GetBytes(i);
// ar will contain {64, 226, 1, 0}
Run Code Online (Sandbox Code Playgroud)

我如何在PHP中完成同样的事情?

Jon*_*Jon 21

等效转换是

$i = 123456;
$ar = unpack("C*", pack("L", $i));
Run Code Online (Sandbox Code Playgroud)

看到它在行动.

您应该知道,字节顺序(小/大端)依赖于机器架构(因为它也是如此BitConverter).这可能是也可能不是好事.


dec*_*eze 6

由于PHP中的字节数组相当于一个字符串,所以这样做:

$bytes = pack('L', 123456);
Run Code Online (Sandbox Code Playgroud)

要想象它,使用bin2hex:

echo bin2hex($bytes);
// 40e20100
// (meaning 64, 226, 1, 0)
Run Code Online (Sandbox Code Playgroud)