How to check if an array is multidimensional or not in PHP

2 Answers

0 votes
function array_is_multidimensiona($array) {
    return count($array) != count($array, COUNT_RECURSIVE);
}
  
$array1 = array(1 => 'a', 2 => 'b');
if (array_is_multidimensiona($array1)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
}
  
$array2 = array(1 => 'a', 2 => 'b', 3 => array(1, 2, 3));
if (array_is_multidimensiona($array2)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
}
  
$array3 = array(array()); // Error - array is empty multidimensional
if (array_is_multidimensiona($array3)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
} 
 
$array4 = array(1 => 'a', 2 => 'b', 'foo' => array(1, array(2)));
if (array_is_multidimensiona($array4)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
}
 
 
    
/*
run:
   
array is not multidimensional
array is multidimensional
array is not multidimensional
array is multidimensional
   
*/

 



answered Jan 31, 2025 by avibootz
edited Jan 31, 2025 by avibootz
0 votes
function array_is_multidimensiona($array) {
    $rv = array_filter($array ,'is_array');
     
    if (count($rv) > 0) {
        return true;
    }
     
    return false;
}
  
$array1 = array(1 => 'a', 2 => 'b');
if (array_is_multidimensiona($array1)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
}
  
$array2 = array(1 => 'a', 2 => 'b', 3 => array(1, 2, 3));
if (array_is_multidimensiona($array2)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
}
  
$array3 = array(array()); 
if (array_is_multidimensiona($array3)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
} 
 
$array4 = array(1 => 'a', 2 => 'b', 'foo' => array(1, array(2)));
if (array_is_multidimensiona($array4)) {
    echo "array is multidimensional\n";
}
else {
    echo "array is not multidimensional\n";
}
 
 
    
/*
run:
   
array is not multidimensional
array is multidimensional
array is multidimensional
array is multidimensional
   
*/

 



answered Jan 31, 2025 by avibootz
edited Jan 31, 2025 by avibootz

Related questions

1 answer 157 views
1 answer 106 views
1 answer 558 views
1 answer 182 views
4 answers 301 views
5 answers 945 views
...