在 php unpack 函数中搜索正确的格式
Posted
技术标签:
【中文标题】在 php unpack 函数中搜索正确的格式【英文标题】:Searching the proper format in php unpack function 【发布时间】:2015-04-29 09:13:13 【问题描述】:输出是代码的结果:
$bytes= fread($handle,"32");
print_r(unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes));
Array ( [a] => 20150416 [b] => 1.0499999523163 [c] => 1.25 [d] => 1.0299999713898
[e] => 1.1900000572205 [f] => 509427008 [g] => 566125248 [h] => 509427008 )
如果想要的输出如下所示,如何在 unpack 中写入正确的格式?
Array ( [1] => 20150416 [2] => 1.0499999523163 [3] => 1.25 [4] => 1.0299999713898
[5] => 1.1900000572205 [6] => 509427008 [7] => 566125248 [8] => 509427008 )
【问题讨论】:
我想你在找array_values()
php.net/manual/en/function.array-values.php
或者,只需将更改解包字符串替换为L1/f2/f3/f4/f5/f6/f7/f8
你有没有尝试过实现目标?
字符串 L1/f2/f3/f4/f5/f6/f7/f8 格式错误,我测试过了。
【参考方案1】:
使用array_values,它保持顺序(第一个索引为0):
$bytes = fread($handle,"32");
$un = unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes);
print_r(array_values($un));
编辑(如果你想要第一个索引 1):
$bytes = fread($handle,"32");
$un = unpack("La/fb/fc/fd/fe/ff/fg/fh",$bytes);
array_unshift($un, NULL);
$array = array_values($un);
unset($array[0]);
print_r($array);
【讨论】:
那将是基数 0 而不是基数 1以上是关于在 php unpack 函数中搜索正确的格式的主要内容,如果未能解决你的问题,请参考以下文章