Как преобразовать массив байтов в целое число в php?

Я видел код, который преобразует целое число в массив байтов . Ниже приведен код о том, как преобразовать целочисленный массив в байтовый массив в php 3 ( как преобразовать целочисленное значение в массив байтов в php ):

<?php $i = 123456; $ar = unpack("C*", pack("L", $i)); print_r($ar); ?> 

Вышеприведенный код выводит:

 //output: Array ( [1] => 64 [2] => 226 [3] => 1 [4] => 0 ) 

Но сейчас моя проблема заключается в том, как обратить вспять этот процесс. Значение преобразования из массива байтов в целое . В приведенном выше примере выход будет 123456

Может ли кто-нибудь помочь мне в этом. Я бы очень помог. Спасибо заранее.

Почему бы не относиться к нему, как к математической проблеме?

$ i = ($ ar [3] << 24) + ($ ar [2] << 16) + ($ ar [1] << 8) + $ ar [0];

Поскольку L имеет длину четыре байта, вы знаете количество элементов массива. Поэтому вы можете просто выполнить операцию обратное:

 $ar = [64,226,1,0]; $i = unpack("L",pack("C*",$ar[3],$ar[2],$ar[1],$ar[0])); 

Чтобы получить подписанное 4-байтовое значение в PHP, вам нужно сделать следующее:

 $temp = ($ar[0]<<24) + ($ar[1]<<16) + ($ar[2]<<8) + ($ar[3]); if($temp > 2147483648) $temp -= 4294967296;