Current Location: Home> Latest Articles> Common Methods to Determine if an Array is an Associative Array in PHP

Common Methods to Determine if an Array is an Associative Array in PHP

gitbox 2025-06-29

Common Methods to Determine if an Array is an Associative Array in PHP

In PHP development, determining whether a variable is an associative array is a common task. Associative arrays have string keys, while indexed arrays have integer keys. This article will introduce three common methods to help developers quickly check the array type.

Using the is_array() Function to Check Array Type

The is_array() function checks if a variable is an array. If the variable is an array, it returns true, otherwise, it returns false.

Here is an example of using is_array() to check an array:

$arr = array('name' => 'John', 'age' => 25);
if (is_array($arr)) {
    echo 'This is an array';
} else {
    echo 'This is not an array';
}

The output will be: This is an array. Because $arr is an associative array.

Note that is_array() only checks whether a variable is an array and cannot distinguish whether the array is indexed or associative.

Using the array_keys() Function to Check for Associative Arrays

The array_keys() function returns all the keys of an array. If all the keys are strings, we can determine that the array is associative.

Here is an example of using array_keys() to check an associative array:

$arr = array('name' => 'John', 'age' => 25);
$keys = array_keys($arr);
if (count($keys) > 0) {
    echo 'This is an associative array';
} else {
    echo 'This is not an associative array';
}

The output will be: This is an associative array.

Using a foreach Loop to Check Array Type

You can also iterate over an array using a foreach loop and check whether the keys are strings to determine if the array is associative.

Here is an example using foreach:

$arr = array('name' => 'John', 'age' => 25);
$isAssoc = false;
foreach ($arr as $key => $value) {
    if (!is_int($key)) {
        $isAssoc = true;
        break;
}
}
if ($isAssoc) {
    echo 'This is an associative array';
} else {
    echo 'This is not an associative array';
}

The output will be: This is an associative array.

Conclusion

This article introduced three methods for checking if a PHP array is associative: using the is_array() function to check if it's an array, using array_keys() to inspect the keys, and using a foreach loop to determine if the keys are strings. Developers can choose the appropriate method based on their needs to check the array type.