<?php
$arrayOfString = array(
'customer service[-3] technical support[-3]',
'picture quality[+2]feature[+2]',
'smell[-2]',
'player[+2]',
'player[-3][u]',
'dvd player[-2]',
'player[+2][p]',
'format[+2][u]progressive scan[-2]'
);
preg_match_all("/([\w ]+[^[]]*)\[([+-]\d*?)\]/", implode(",", $arrayOfString) , $matches);
print_r(array_combine($matches[1], array_filter($matches[2], 'trim')));
preferences:
38.79 ms | 402 KiB | 5 Q