Для тех, у кого такая же проблема:
Я не проверял поведение Yii1, но в Yii2 вы просто можете вставить массив в виде правильно сформированной строки, как упомянул Эрвин Брандштеттер в своем комментарии:
$activeRecord->arrayField = '{' . implode(',',$array_values) . '}';
Конечно, вам нужно приложить дополнительные усилия, когда ваши $ array_values содержат строки с запятыми и т. Д. И вам все еще нужно преобразовать значение обратно в массив после загрузки ActiveRecord.
Эти преобразования можно выполнить в beforeSave () и afterLoad () ActiveRecord, и вам не нужно будет преобразовывать значения вручную.
UPD . Недавно я сделал простое поведение для Yii2 для использования полей массива с ActiveRecord без ручного создания полей: kossmoss / yii2-postgresql-array-field . Это более обобщенный способ решения проблемы, и я надеюсь, что он поможет. Для тех, кто использует Yii1: вы можете исследовать код пакета и создать собственное решение, совместимое с вашей платформой.