Массивы хранятся с использованием внутренних хэш-таблиц Zend, доступ к которым может быть получен с помощью zend_hash_*() API. Для каждого создаваемого вами массива вам понадобится дескриптор новой хэш таблицы, который хранится в члене ht контейнера zval.value.
Имеется API, предназначенный исключительно для создания массивов.
Для создания нового массива вы вызываете array_init().
zval *new_array; MAKE_STD_ZVAL(new_array); if(array_init(new_array) != SUCCESS) { // здесь обработка ошибок } |
Если array_init() не смогла создать новый массив, она возвращает FAILURE.
Для добавления в массив новых элементов вы можете использовать многочисленные функции, в зависимости от того, что нужно сделать. В Таблицах 9.8, 9.9 и 9.10 описаны эти функции. Все функции возвращают FAILURE при неудаче и SUCCESS при успешном выполнении.