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

2022-08-31 00:48:26

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

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

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

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


答案 1

等效转换为

$i = 123456;
$ar = unpack("C*", pack("L", $i));

查看实际效果

但是,您应该知道字节顺序(小/大端序)取决于机器体系结构(在 的情况下也是如此)。这可能是也可能不是好事。BitConverter


答案 2

由于 PHP 中字节数组的等效值是字符串,因此可以执行以下操作:

$bytes = pack('L', 123456);

要可视化,请使用:bin2hex

echo bin2hex($bytes);
// 40e20100
// (meaning 64, 226, 1, 0)

推荐