diff options
Diffstat (limited to 'src/Components/ArrayObj.php')
-rw-r--r-- | src/Components/ArrayObj.php | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php index 8dde518..ef0f79f 100644 --- a/src/Components/ArrayObj.php +++ b/src/Components/ArrayObj.php @@ -133,20 +133,28 @@ class ArrayObj extends Component } /** - * @param ArrayObj $component The component to be built. + * @param ArrayObj|ArrayObj[] $component The component to be built. * * @return string */ public static function build($component) { - $values = array(); - if (!empty($component->raw)) { - $values = $component->raw; + if (is_array($component)) { + $values = array(); + foreach ($component as $c) { + $values[] = static::build($c); + } + return implode(', ', $values); } else { - foreach ($component->values as $value) { - $values[] = $value; + $values = array(); + if (!empty($component->raw)) { + $values = $component->raw; + } else { + foreach ($component->values as $value) { + $values[] = $value; + } } + return '(' . implode(', ', $values) . ')'; } - return '(' . implode(', ', $values) . ')'; } } |