Распаковка строки в массив целых значений

SiMM

Новичок
Распаковка строки в массив целых значений

Понадобилось решить маленькую задачку. Способы решения банальны, но в одном случае не устраивает формат выводимых данных, а в другом - необходимость "ручного" перебора всех элементов (массив может быть здоровым). Вариант 1:
PHP:
print_r(unpack('v*arr',"\x02\x01\x04\x03"));
Что не нравится в таком решении? То, что вместо удобного массива arr с элементами 0 и 1 (индексация нужна с нуля) имеем набор переменных arr1, arr2.
Вариант 2:
PHP:
preg_match_all('#.{2}#s',"\x02\x01\x04\x03",$arr);
foreach ($arr[0] as $k=>$v) $arr[$k] = join('',unpack('v',$v));
print_r($arr);
Может кто-нибудь знает более удачное решение?
PS: так и хочется влепить в preg_match_all модификатор e ;)
 

sky2k4

Guest
may be..?
PHP:
print_r(
    array_merge(
        unpack('v*', "\x02\x01\x04\x03")
    )
);
 

SiMM

Новичок
Или
PHP:
print_r(array_values(unpack('v*',"\x02\x01\x04\x03")))
;) Что-то я стормозил с тем, что имя для переменных указывать необязательно (хотя во втором варианте мне это не помешало его неуказывать).
 
Сверху