Php 检查数组是否为多维数组

Php 检查数组是否为多维数组,php,multidimensional-array,Php,Multidimensional Array,可能重复: 如何在PHP中检查数组是否是多维的?PHP中的多维数组只是包含数组的数组。所以一个简单的函数可以写成 function is_multidim_array($arr) { if (!is_array($arr)) return false; foreach ($arr as $elm) { if (!is_array($elm)) return false; } return true; } 这将遍历$arr的每个元素,并检查它是否为数

可能重复:


如何在PHP中检查数组是否是多维的?

PHP中的多维数组只是包含数组的数组。所以一个简单的函数可以写成

function is_multidim_array($arr) {
  if (!is_array($arr))
    return false;
  foreach ($arr as $elm) {
    if (!is_array($elm))
      return false;
  }
  return true;
}

这将遍历
$arr
的每个元素,并检查它是否为数组。如果它遇到一个不是数组的元素,它将返回false。否则,返回true。

使用count两次,一次使用单参数,一次使用递归模式

if (count($myarray) == count($myarray, COUNT_RECURSIVE)) 
{
  echo 'MyArray is not multidimensional';
}
else
{
  echo 'MyArray is multidimensional';
}
计数(数组、模式)

  • 数组---必选。指定要计数的数组或对象
  • 模式---可选。指定函数的模式。可能值:

    • 0-默认值。不检测多维数组(数组中的数组)
    • 1-检测多维数组
注意:此参数是在PHP4.2中添加的


取决于你所考虑的多维。我会考虑任何包含另一个数组的数组是多维的。每一个值不一定都是另一个数组。我会考虑任何直接数组的数组也是多维的,这对于<代码> [1,[1, 2 ] ] < /> >。我(差不多5岁)回答中的描述也清楚地说明了我使用的定义——每个孩子都必须是一个数组。对于手头的任务,这是否是正确的定义,我不能说::-)@kba
包含数组的数组
,我的示例满足这个标准,不是吗?我宁愿将第二个
if
切换,最后返回
false
。我认为这一个有更好的“答案”,假设OM的picked@Ascherer:该答案也可在重复问题中找到。我更倾向于用附加信息编辑答案,而不是保留一个重复的问题。要求另一张海报接受答案如果像这样的数组-['a','b',[]代码工作正常,这将不起作用。谢谢。。