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

时间:2012-07-18 15:23:43

标签: php bytearray

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

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

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

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

3 个答案:

答案 0 :(得分:20)

等效转换是

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

<强> See it in action

你应该知道,字节顺序(小/大端)依赖于机器架构(因为它也是BitConverter的情况)。这可能会或可能不会很好。

答案 1 :(得分:6)

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

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

要想象出来,请使用bin2hex

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

答案 2 :(得分:0)

$i = 123456;
$byte_array = unpack('C*', $i);

var_dump($byte_array);
array(6) {
  [1]=>
  int(49)
  [2]=>
  int(50)
  [3]=>
  int(51)
  [4]=>
  int(52)
  [5]=>
  int(53)
  [6]=>
  int(54)
}