Re: associative arrays

From: Date: Mon, 13 Aug 2001 09:38:18 +0000
Subject: Re: associative arrays
References: 1 2 3  Groups: php.dev 
Request: Send a blank email to php-dev+get-63067@lists.php.net to get a copy of this message
Actually, this is quite well documented, if you actually try to look the documentation up... http://www.zend.com/apidoc/x1243.php Zeev At 12:24 13-08-01, Markus Fischer wrote:
go Rasmus go! :-) Some more examples and we seriously can extend zend.com/apidoc . Such examples are of great value to anyone who is new to writing php extension. - Markus On Mon, Aug 13, 2001 at 02:14:01AM -0700, Rasmus Lerdorf wrote : 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
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net For additional commands, e-mail: php-dev-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net -- Markus Fischer, http://guru.josefine.at/~mfischer/
EMail:         mfischer@guru.josefine.at
PGP Public Key: http://guru.josefine.at/~mfischer/C2272BD0.asc PGP Fingerprint: D3B0 DD4F E12B F911 3CE1 C2B5 D674 B445 C227 2BD0
              -All your scripts are belong to Zend-
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net For additional commands, e-mail: php-dev-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net
-- Zeev Suraski <zeev@zend.com> CTO & co-founder, Zend Technologies Ltd. http://www.zend.com/

« previous php.dev (#63067) next »