getValues()[] = self::convertAnyValue($element); } $result->setArrayValue($values); } else { $values = new KeyValueList(); foreach ($value as $key => $element) { /** @psalm-suppress InvalidArgument */ $values->getValues()[] = new KeyValue(['key' => $key, 'value' => self::convertAnyValue($element)]); } $result->setKvlistValue($values); } } if (is_int($value)) { $result->setIntValue($value); } if (is_bool($value)) { $result->setBoolValue($value); } if (is_float($value)) { $result->setDoubleValue($value); } if (is_string($value)) { $result->setStringValue($value); } return $result; } /** * Test whether an array is simple (non-KeyValue) */ public static function isSimpleArray(array $value): bool { return $value === [] || array_key_first($value) === 0; } }