Re: associative arrays

From: Date: Mon, 13 Aug 2001 09:14:01 +0000
Subject: Re: associative arrays
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-63060@lists.php.net to get a copy of this message
Ah, ok. It's not much harder: pval *tmp_arr; array_init(return_value); MAKE_STD_ZVAL(tmp_arr); array_init(tmp_arr); add_assoc_string(tmp_arr, "string index", "foo", 1); zend_hash_index_update(Z_ARRVAL_P(return_value), 5, &tmp_arr, sizeof(tmp_arr), NULL); This will create $whatever[5]['string index'] = 'foo' Or if you want a string index at the top level: zend_hash_update(Z_ARRVAL_P(return_value), "bar", strlen("bar")+1, &tmp_arr, sizeof(tmp_arr), NULL); This will create $whatever['bar']['string index'] = 'foo'; -Rasmus On Mon, 13 Aug 2001, Thomas Wentzel wrote: > Uhhh sorry! > > What I should have said is that... The associative array I wish to > return is to be an array element of .... an associative array ;) > Meaning... I need the functionality of add_assoc_array but since > this function doesn't exist - I have to manipulate with the > zend_hash_xxx in order to get what I want - but I fail to connect > my constructed array with a name... > > Rasmus Lerdorf wrote: > > > > > I was wondering if someone would be so nice as to post a code > > > snippet that returns an associative array... I'm writing an > > > extension and am only able to return an ordinary array... > > > Alternatively I would be very interested if someone could > > > point me to some documentation on the zend_hash_xxx functions > > > > array_init(return_value); > > add_assoc_string(return_value, "string index", your_char_var, 1); > > add_assoc_double(return_value, "another one", your_long_var); > > > > That's all. Last arg on add_assoc_string() should be 1 if you need to > > make a copy of the string. If the char * you are passing was allocated by > > you using emalloc() then don't make a copy. > > > > You don't need any zend_hash_xxx functions to just return an associative > > array. > > > > -Rasmus > > >

« previous php.dev (#63060) next »