PHP 包含多个不同长度的值
PHP pack with multiple values with different lengths
我想打包一个由 64 位、32 位和 32 位整数组成的字符串。
我对 pack 函数(或所有位)没有太多经验,所以我正在尝试做这样的事情:
pack('JNN', 1, 2, 3);
// and
unpack('JNN');
但这并没有产生我想要的结果。
问题是,当我 运行 我收到以下代码时:
array [
"NN" => 1
]
但我预料到了这一点:
array [
1,
2,
3
]
知道如何解决这个问题吗?
提前致谢,
pack 创建一个 16 个字符的字符串。
$str = pack('JNN', 1, 2, 3);
//string(16) "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03"
解包需要格式元素的密钥。示例:
$arr = unpack('Jint64/N2int32_',$str);
/*
array (
'int64' => 1,
'int32_1' => 2,
'int32_2' => 3,
)
*/
有关更多示例,请参阅 PHP 手册中的 Unpack。
如果需要纯数字键,可以使用array_values函数
我想打包一个由 64 位、32 位和 32 位整数组成的字符串。 我对 pack 函数(或所有位)没有太多经验,所以我正在尝试做这样的事情:
pack('JNN', 1, 2, 3);
// and
unpack('JNN');
但这并没有产生我想要的结果。
问题是,当我 运行 我收到以下代码时:
array [
"NN" => 1
]
但我预料到了这一点:
array [
1,
2,
3
]
知道如何解决这个问题吗?
提前致谢,
pack 创建一个 16 个字符的字符串。
$str = pack('JNN', 1, 2, 3);
//string(16) "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03"
解包需要格式元素的密钥。示例:
$arr = unpack('Jint64/N2int32_',$str);
/*
array (
'int64' => 1,
'int32_1' => 2,
'int32_2' => 3,
)
*/
有关更多示例,请参阅 PHP 手册中的 Unpack。
如果需要纯数字键,可以使用array_values函数