Last active
November 19, 2015 08:56
-
-
Save nawfalhasan/a0f058e8aa29b10d4dc2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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