Дана бинарная строка, в которой, например, 1056 байта. Строку получаю в big endian. Но программа будет работать на Intel т.е little endian?
В строке каждые 4 байта это значние float.
$index = 0;
$out = bin2hex($buffer);
$result_array = array();
$tmpbuffer = array(4); // массив для каждых 4-х байтов
for ($i = 0; $i < 1024/4; $i++) {
$index = $i*4;
$tmpbuffer[0] = $out[$index];
$tmpbuffer[1] = $out[$index+1];
$tmpbuffer[2] = $out[$index+2];
$tmpbuffer[3] = $out[$index+3];
array_push($result_array, unpack("f", $tmpbuffer)); // 4 байта распаковываем в одно значение float и отправляем в результирующий массив
}
Вопрос: как это правильно сделать?