Re: Add is_vectorlike($array) function

From: Date: Thu, 04 May 2017 11:23:05 +0000
Subject: Re: Add is_vectorlike($array) function
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-98963@lists.php.net to get a copy of this message
On Tue, May 2, 2017 at 7:55 PM, Rowan Collins <rowan.collins@gmail.com> wrote: > +1, I've been thinking of making a similar suggestion. We can bikeshed the > name (it should certainly start with "array_"), but I think there's a very > good case for having an optimised implementation built in, given the > opportunities for short-cutting based on representation details. > Something like array_is_vectorlike(), array_is_vector() or array_is_sequential() sound good to me. You could also do the opposite, array_is_assoc(). As an example use case, serialization formats often dynamically switch > between an "array"/"vector"/"list", and a > "hash"/"dictionary"/"table". I > came upon this example recently: https://github.com/php-amqplib > /php-amqplib/blob/master/PhpAmqpLib/Wire/AMQPAbstractCollection.php#L218 Another reason this function would be of utility is that it would discourage even more inefficient implementations that allocate new arrays, like the one in that code ("array_keys($val) === range(0, count($val) - 1)"), and nearly every single answer to this StackOverflow question (except mine): https://stackoverflow.com/questions/173400/how-to-check-if-php-array-is-associative-or-sequential/

« previous php.internals (#98963) next »