您可能需要编写自己的解析器来完成这项工作,让我们假设您有这样的字符串:(为了更短的示例而id=map,size=512x512,markers=[[latitude=40.5,longitude=-73.9],[latitude=41.5,longitude=-72.9]]剥离):[map]
$lastStart = 0; // Position where we last cut
$len = strlen( $str);
$openedBraces = 0; // Number of braces opened
$result = array();
for( $i = 0; $i < $len; $i++){
    switch( $str[$i]){
        // Handle opening brace
        case '[':
           $openedBraces++;
           break;
        // Handle closing brace
        case ']':
           $openedBraces--; // You may want to check negative numbers
           break;
        // Handle coma (it's sane operation only if there are no braces opened)
        case ',':
           if( $openedBraces == 0){
               $result[] = substr( $str, $lastStart, $i-$lastStart);
               $lastStart = $i+1;
           }
           break;
    }
}
$result[] = substr( $str, $lastStart);
工作codepad.org示例。