【发布时间】:2017-08-17 18:39:16
【问题描述】:
我有一个包含这些值的数组(当使用print_r(); 打印数组时
Array:
[0] => 66
[1] => 233
[2] => 204
[3] => 205
十六进制值是:
Array:
[0] => 0x42
[1] => 0xE9
[2] => 0xCC
[3] => 0xCD
我要做的是把这个 4 字节数组变成一个浮点值。如果我使用implode(); 将数组转换为一个值,它只是将字符串组合成66233204205,而不是不相似的0x42E9CCCD。因此我不能使用floatval()。 PHP 对我来说是新的,所以使用字符串值而不是实际位,就像我在 C 中一样。
我在想的是如何implode() 它使用十六进制值,而不是那些整数,然后使用floatval()。
各位有什么想法吗?
编辑:
只是这样更清楚一点,我应该得到116.900作为结果
【问题讨论】:
-
您是要对这些值求和还是只是将数组的值一个接一个地追加?
-
@Goldbug,感谢您这么快的回复!我希望在下一个(十六进制)之后附加数组的值,然后将其转换为浮点数。如果我使用
implode();附加它,它会将它附加到它的字符串值中;看起来像66233204205 -
听起来像
array_map('dechex', $array),然后是implode(),然后是hexdec()。但我没有测试它,我认为它会因更大的数字而失败。 -
谢谢@slevy1。我必须专注于
0x42E9CCC字符串,却没有意识到它并没有让我们更接近解决方案。至少在我发表评论几分钟后进行了编辑:)
标签: php arrays floating-point