Search code examples
phpfloating-pointpackunpack

Convert float to array of bytes in PHP


I need to convert a float value into 4 bytes.

In javascript I usually do it with this code:

  var farr = new Float32Array(1);
  farr[0] = 26.75;
  var barr = new Int8Array(farr.buffer);
  console.log(barr[0]+","+barr[1]+","+barr[2]+","+barr[3]); 
  //26.75 => 0,0,-42,65
  //26.85 => -51,-52,-42,65

I want to do it in php instead of javascript. I it possible?


Solution

  • try to use pack and unpack function:

    $f = 26.75;
    $ar = unpack("c*", pack("f", $f));
    
    print_r($ar);
    

    Result:

    Array
    (
      [1] => 0
      [2] => 0
      [3] => -42
      [4] => 65
    )
    

    you can find a snippet here