public static function explode($string, $delimiter = ',', $trim = true, $skipEmpty = false)
    {
        $result = explode($delimiter, $string);
        if ($trim) {
            if ($trim === true) {
                $trim = 'trim';
            } elseif (!is_callable($trim)) {
                $trim = function ($v) use ($trim) {
                    return trim($v, $trim);
                };
            }
            $result = array_map($trim, $result);
        }
        if ($skipEmpty) {
            // Wrapped with array_values to make array keys sequential after empty values removing
            $result = array_values(array_filter($result));
        }
        return $result;
    }
public static function explode($string, $delimiter = ',', $trim = true, $skipEmpty = false)
    {
        $result = explode($delimiter, $string);
        if ($trim) {
            if ($trim === true) {
                $trim = 'trim';
            } elseif (!is_callable($trim)) {
                $trim = function ($v) use ($trim) {
                    return trim($v, $trim);
                };
            }
            $result = array_map($trim, $result);
        }
        if ($skipEmpty) {
            // Wrapped with array_values to make array keys sequential after empty values removing
            $result = array_values(array_filter($result));
        }
        return $result;
    }
public static function explode ( $ string , $ delimiter = ',' , $ trim = true , $ skipEmpty = false ) { $ result = explode ( $ delimiter , $ string ) ; if ( $ trim ) { if ( $ trim === true ) { $ trim = 'trim' ; } elseif ( ! is_callable ( $ trim ) ) { $ trim = function ( $ v ) use ( $ trim ) { return trim ( $ v , $ trim ) ; } ; } $ result = array_map ( $ trim , $ result ) ; } if ( $ skipEmpty ) { // Wrapped with array_values to make array keys sequential after empty values removing $ result = array_values ( array_filter ( $ result ) ) ; } return $ result ; }
Explodes string into array, optionally trims values and skips empty ones

@param string $string String to be exploded.
@param string $delimiter Delimiter. Default is ','.
@param mixed $trim Whether to trim each element. Can be:
- boolean - to trim normally;
- string - custom characters to trim. Will be passed as a second argument to `trim()` function.
- callable - will be called for each value instead of trim. Takes the only argument - value.
@param boolean $skipEmpty Whether to skip empty strings between delimiters. Default is false.
@return array
@since 2.0.4
Explodes string into array optionally trims values and skips empty ones