pub fn insert_at_index<V>(&mut self, key: u64, val: V) -> Result<()>
    where
        V: IntoZval,
    {
        let mut val = val.into_zval(false)?;
        unsafe { zend_hash_index_update(self, key, &mut val) };
        val.release();
        Ok(())
    }
Inserts an item into the hash table at a specified index, or updates if
the key already exists. Returns nothing in a result if successful.

# Parameters

* `key` - The index at which the value should be inserted.
* `val` - The value to insert into the hash table.

# Returns

Returns nothing in a result on success.

# Errors

Returns an error if converting the value into a [`Zval`] failed.

# Example

```no_run
use ext_php_rs::types::ZendHashTable;

let mut ht = ZendHashTable::new();

ht.insert_at_index(0, "A");
ht.insert_at_index(5, "B");
ht.insert_at_index(0, "C"); // notice overriding index 0
assert_eq!(ht.len(), 2);
```
src/types/array.rs