Compass::compassList PHP Method

compassList() public static method

public static compassList ( $list, $seperator = ',' )
    public static function compassList($list, $seperator = ',')
    {
        if (is_object($list)) {
            $list = $list->value;
        }
        if (is_array($list)) {
            $newlist = array();
            foreach ($list as $listlet) {
                $newlist = array_merge($newlist, self::compassList($listlet, $seperator));
            }
            $list = implode(', ', $newlist);
        }
        $out = array();
        $size = 0;
        $braces = 0;
        $stack = '';
        for ($i = 0; $i < strlen($list); $i++) {
            $char = substr($list, $i, 1);
            switch ($char) {
                case '(':
                    $braces++;
                    $stack .= $char;
                    break;
                case ')':
                    $braces--;
                    $stack .= $char;
                    break;
                case $seperator:
                    if ($braces === 0) {
                        $out[] = $stack;
                        $stack = '';
                        $size++;
                        break;
                    }
                default:
                    $stack .= $char;
            }
        }
        $out[] = $stack;
        return $out;
    }