Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nawfalhasan/a0f058e8aa29b10d4dc2 to your computer and use it in GitHub Desktop.
Save nawfalhasan/a0f058e8aa29b10d4dc2 to your computer and use it in GitHub Desktop.
This is a collection of working solutions in PHP found all over internet to check two things:
1. Whether a given variable is an indexed array. An indexed array in PHP is an array where all keys are sequential, numerical and starts from 0, ie, which is like vector in other languages. The tests can be found here: https://3v4l.org/fcZ2j
2. Whether a given variable is an associative array. An associative array is the opposite of above case where keys need not be numeric, sequential or starting from zero. The tests can be found here: https://3v4l.org/fcZ2j
<?php
function is_indexed_array($var)
{
return (array_merge($var) === $var && is_numeric( implode( array_keys( $var ) ) ) );
}
function callbackReduceNotArray($a, $b)
{
return ($b === $a ? $a + 1 : 0);
}
function is_indexed_array($arr)
{
return (0 !== array_reduce(
array_keys($arr),
'callbackReduceNotArray',
0
)
);
}
function is_indexed_array( &$array ) {
if ( !is_array($array) || empty($array) ) {
return -1;
}
$next = 0;
foreach ( $array as $k => $v ) {
if ( $k !== $next ) return false;
$next++;
}
return true;
}
function is_indexed_array( &$array ) {
if ( !is_array($array) || empty($array) ) {
return -1;
}
$next = 0;
foreach ( $array as $k => $v ) {
if ( $k !== $next ) return true;
$next++;
}
return false;
}
function is_indexed_array($var)
{
return count(array_diff_key($var, range(0, count($var) - 1))) == 0;
}
function is_indexed_array($array) {
return (array_values($array) == $array);
}
function is_indexed_array($array)
{
return ($array === array_values($array));
}
function is_indexed_array($ar) {
if (!is_array($ar))
return false;
$keys = array_keys($ar);
return array_keys($keys) === $keys;
}
function is_indexed_array($ar) {
if (!is_array($ar))
return false;
$keys = array_keys($ar);
return array_keys($keys) == $keys;
}
function is_indexed_array($ar) {
$keys = array_keys($ar);
return array_keys($keys) === $keys;
}
function is_indexed_array($ar) {
$keys = array_keys($ar);
return array_keys($keys) == $keys;
}
function is_indexed_array($array) {
return array_keys($array) === array_flip(array_keys($array));
}
function is_indexed_array($array)
{
$i = 0;
foreach ($array as $a => $b) { if (is_int($a)) { ++$i; } }
if (count($array) === $i) { return true; }
else { return false; }
}
function is_indexed_array($array)
{
foreach ($array as $a => $b) {
if (!is_int($a)) {
return false;
}
}
return true;
}
function is_indexed_array($array)
{
foreach ($array as $a => $b) {
if ($a !== (int) $a) {
return false;
}
}
return true;
}
function is_indexed_array($array)
{
foreach (array_keys($array) as $a)) {
if (!is_int($a)) {
return false;
}
}
return true;
}
function is_indexed_array(array $a)
{
if (!is_array($a))
return false;
$i = 0;
foreach ($a as $k => $v)
if ($i++ !== $k)
return false;
return true;
}
function is_indexed_array($array)
{
return array_merge($array) === $array;
}
function is_indexed_array(array $array) {
foreach ($array as $a => $b) {
if (!is_numeric($a)) {
return false;
}
}
return true;
}
function is_indexed_array(array $array) {
if (!is_array($a))
return false;
foreach ($array as $a => $b) {
if (!is_numeric($a)) {
return false;
}
}
return true;
}
function is_indexed_array($array)
{
$array = array_keys($array);
if ($array === array_filter($array, 'is_int'))
{
return true;
}
return false;
}
function is_indexed_array($arr) {
$c = count($arr);
for ($i = 0; $i < $c; $i++) {
if (!isset($arr[$i])) {
return false;
}
}
return true;
}
function is_indexed_array($arr) {
return !in_array(1, array_map('is_string', array_keys($test)));
}
function is_indexed_array($arr) {
return $arr === array() || range(0, count($arr)-1) === array_keys($arr);
}
function is_indexed_array($a) {
$stringKeys = array_diff_key($a, array_values($a));
return empty($stringKeys);
}
function is_indexed_array( $array )
{
$last_k = -1;
foreach( $array as $k => $v )
{
if( $k != $last_k + 1 )
{
return false;
}
$last_k++;
}
return true;
}
function is_indexed_array(&$arr) {
for (reset($arr), $base = 0; key($arr) === $base++; next($arr));
return is_null(key($arr));
}
function is_indexed_array(&$arr) {
for (reset($arr); is_int(key($arr)); next($arr));
return is_null(key($arr));
}
function is_indexed_array(&$arr) {
if (!is_array($arr))
return false;
for (reset($arr); is_int(key($arr)); next($arr));
return is_null(key($arr));
}
function is_indexed_array($InputArray)
{
if(!is_array($InputArray))
{
return false;
}
if(count($InputArray) <= 0)
{
return true;
}
return array_keys($InputArray) === range(0, count($InputArray) - 1);
}
function is_indexed_array($value){
if(is_array($value)) {
for ($i = count($value) - 1; $i >= 0; $i--) {
if (!isset($value[$i]) && !array_key_exists($i, $value)) {
return false;
}
}
return true;
} else {
return false;
}
}
function is_indexed_array($arr){
$arr_copy = $arr;
if((2*count($arr)) == count(array_merge($arr, $arr_copy))){
return 1;
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment