Present bad behaviour:
array_sscanf("1234567890123","%-3d%d");
(3) Result: ({ /* 2 elements */ 123, 4567890123 })
Yes? This is the expected behaviour.
Wanted behaviour:
array_sscanf("1234567890123","%-3d%d");
(4) Result: ({ /* 2 elements */ 1234567890, 123 })
?? You want it to be relative to the size of the first argument?