PHP → Убрать символы между одинарных скобок

Задача: убрать символы между одинарных скобок  '' в строке. Это необходимо, например, в случае когда при сплите строки по запятой , возникают ошибки т.к. запятая содержится между скобок.

Пример строки:

[12345, 'abc', 'Текст, в одинарных скобках, разделенный, запятыми', '']

При вызове:

echo count(explode(', ', $str));

Мы получим: 7. А нам надо — 4.

Решение:

function str_split_unicode($str, $l = 0) {
    if ($l > 0) {
        $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
            $ret[] = mb_substr($str, $i, $l, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}

$str = "[12345, 'abc', 'Текст, в одинарных скобках, разделенный, запятыми', '']";

$result_str = '';
$flag = false;
foreach (str_split_unicode($str) as $ch) {
        if($ch == "'") $flag = !$flag;
        if($flag && $ch == ',') $ch = ' ';
        $result_str .= $ch;
}
echo $result_str;