You're going to have to loop over the array and use preg_match with a reference.
Regex something like this (off the top of my head) would probably work:
/|(.*?)=(.*?)|?/
Just use preg_match('/|(.*?)=(.*?)|?/', $subject[$x], $matches);
and var_dump($matches);
to see the results.
Don't forget that the $matches array passed into the preg_match function is a reference to an array which you should instantiate first and that it will be overwritten in each loop cycle.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…