Hi.
What macros exist regarding processing arrays in PHP (core not userland)?
I want to pass ...
array('value1', 'value2', 'value3')
to a function and in the function have it converted to
'value1\0value2\0value3\0\0'.
Conventionally, I'd need to iterate the array to get the lengths of
all the elements, add the number of elements to this value and then 1
more for the trailing \0.
Unless there are some macros to allow to do this sort of thing more easily.
Regards,
Richard Quadling.
--
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
Hi Richard
2010/12/31 Richard Quadling rquadling@gmail.com:
Hi.
What macros exist regarding processing arrays in PHP (core not userland)?
Zend hash, see Zend/zend_hash.c for its API.
I want to pass ...
array('value1', 'value2', 'value3')
You would do something like:
PHP_FUNCTION(test)
{
zval *array;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a",
&array) == FAILURE) {
return;
}
/* Z_ARRVAL_P(array) is a HashTable* ptr */
}
to a function and in the function have it converted to
'value1\0value2\0value3\0\0'.
Conventionally, I'd need to iterate the array to get the lengths of
all the elements, add the number of elements to this value and then 1
more for the trailing \0.
The move_forward, get_current etc. hash functions can be used to
iterate, see zend_hash.h:
http://lxr.php.net/opengrok/xref/PHP_TRUNK/Zend/zend_hash.h#194
--
regards,
Kalle Sommer Nielsen
kalle@php.net
Hi Richard
2010/12/31 Richard Quadling rquadling@gmail.com:
Hi.
What macros exist regarding processing arrays in PHP (core not userland)?
Zend hash, see Zend/zend_hash.c for its API.
I want to pass ...
array('value1', 'value2', 'value3')
You would do something like:
PHP_FUNCTION(test)
{
zval *array;if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a",
&array) == FAILURE) {
return;
}/* Z_ARRVAL_P(array) is a HashTable* ptr */
}to a function and in the function have it converted to
'value1\0value2\0value3\0\0'.
Conventionally, I'd need to iterate the array to get the lengths of
all the elements, add the number of elements to this value and then 1
more for the trailing \0.The move_forward, get_current etc. hash functions can be used to
iterate, see zend_hash.h:
http://lxr.php.net/opengrok/xref/PHP_TRUNK/Zend/zend_hash.h#194--
regards,Kalle Sommer Nielsen
kalle@php.net
OOI, can I cheat and simply use php_implode() ?
--
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
I did it like so:
bitbucket.org/winapiforphp/system/src/93583820bbc1/winsystem_registry.c#cl-298
It's a little messy.
Hi.
What macros exist regarding processing arrays in PHP (core not userland)?
I want to pass ...
array('value1', 'value2', 'value3')
to a function and in the function have it converted to
'value1\0value2\0value3\0\0'.
Conventionally, I'd need to iterate the array to get the lengths of
all the elements, add the number of elements to this value and then 1
more for the trailing \0.Unless there are some macros to allow to do this sort of thing more easily.
Regards,
Richard Quadling.
--
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY--
--
Mark Skilbeck.
http://blog.mahcuz.com - webmaster
http://bytes.com - PHP Forum Moderator