<?php
$layout = '+2-1+18*+7-21+3*-4-5+6x29';
sscanf(
$layout,
'%[-+x]%d%[-+x]%d%[-+x]%d*%[-+x]%d%[-+x]%d%[-+x]%d*%[-+x]%d%[-+x]%d%[-+x]%d',
$column1[0][0], $column1[0][1], $column1[1][0], $column1[1][1], $column1[2][0], $column1[2][1],
$column2[0][0], $column2[0][1], $column2[1][0], $column2[1][1], $column2[2][0], $column2[2][1],
$column3[0][0], $column3[0][1], $column3[1][0], $column3[1][1], $column3[2][0], $column3[2][1]
);
var_export($column1);
echo "\n---\n";
var_export($column2);
echo "\n---\n";
var_export($column3);
/*foreach (explode('*', $layout) as $i => $column) {
printf(
"%d: %s\n",
$i + 1,
var_export(
preg_match_all('~(\D)(\d+)~', $column, $matches) ? array_map(null, $matches[1], $matches[2]) : [],
true
)
);
}*/
preferences:
25.86 ms | 405 KiB | 5 Q