How to check if array is associative or sequential in PHP

3 Answers

0 votes
function isAssociative(array $arr) {
    if (array() === $arr) { 
        return false;
    }
    return array_keys($arr) !== range(0, count($arr) - 1);
}

if (isAssociative(array("c", "php", "java", "c++"))) { 
    echo "true<br />"; 
} 
else { 
    echo "false<br />"; 
}

if (isAssociative(array("aa" => 'php', "bb" => 'java', "cc" => 'c#'))) { 
    echo "true<br />"; 
} 
else { 
    echo "false<br />"; 
}


/*
run:

false
true
 
*/

 



answered Jan 26, 2019 by avibootz
0 votes
function isAssociative(array $arr) {
    return array_values($arr) !== $arr;
}

if (isAssociative(array("c", "php", "java", "c++"))) { 
    echo "true<br />"; 
} 
else { 
    echo "false<br />"; 
}

if (isAssociative(array("aa" => 'php', "bb" => 'java', "cc" => 'c#'))) { 
    echo "true<br />"; 
} 
else { 
    echo "false<br />"; 
}


/*
run:

false
true
 
*/

 



answered Jan 26, 2019 by avibootz
0 votes
function isAssociative(array $arr) {
    return !ctype_digit(implode('', array_keys($arr)));
}

if (isAssociative(array("c", "php", "java", "c++"))) { 
    echo "true<br />"; 
} 
else { 
    echo "false<br />"; 
}

if (isAssociative(array("aa" => 'php', "bb" => 'java', "cc" => 'c#'))) { 
    echo "true<br />"; 
} 
else { 
    echo "false<br />"; 
}


/*
run:

false
true
 
*/

 



answered Jan 26, 2019 by avibootz
...