On 2/20/26 20:35, Muhammed Arshid KV wrote:
Hi internals,I’ve proposed a small RFC to add *is_assoc_array(array $array):* bool to the PHP core. RFC: https://wiki.php.net/rfc/is_assoc_array The function detects associative arrays using internal storage *(HT_IS_PACKED)*. Similar helpers exist in frameworks, and a native version would be faster and more consistent. No BC breaks. No impact on SAPIs or OPcache. Feedback welcome. Thanks, Muhammed Arshid
Your implementation is pretty much the inverse of `zend_array_is_list()`,[^1] so you could probably simplify it with the following (note the negation operator (`!`) in front of `zend_array_is_list(array)`.
PHP_FUNCTION(is_assoc_array)
{
HashTable *array;
ZEND_PARSE_PARAMETERS_START(1, 1)
Z_PARAM_ARRAY_HT(array)
ZEND_PARSE_PARAMETERS_END();
RETURN_BOOL(!zend_array_is_list(array));
}
For the sake of consistency, I would change the name of the function to
`array_is_assoc()`.
Cheers, Ben[^1]: https://github.com/php/php-src/blob/da6d890e00d56fd0d842e844aeac03baf7e47f17/Zend/zend_hash.h#L1602-L1633
OpenPGP_signature.asc
Description: OpenPGP digital signature
