fork(1) download
  1. <?php
  2.  
  3. $re = '/(?<=\(|^)([^()]*)/';
  4. $str = "0A,0B(1A((3A, 3B, 3C)))";
  5. preg_match_all($re, $str, $matches);
  6. $res = array();
  7. foreach ($matches[1] as $m){
  8. $res[] = preg_split('/\s*,\s*/',$m);
  9. }
  10. print_r($res);
Success #stdin #stdout 0.02s 24448KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [0] => 0A
            [1] => 0B
        )

    [1] => Array
        (
            [0] => 1A
        )

    [2] => Array
        (
            [0] => 
        )

    [3] => Array
        (
            [0] => 3A
            [1] => 3B
            [2] => 3C
        )

)