如何在PHP中检查数组是关联数组还是顺序数组()

在PHP中, 由于变量是松散类型的, 因此无需在变量之前编写变量类型。它从存储在其中的用户定义值中获取数据类型。 PHP中的数组是一种数据结构, 它允许在单个变量下存储相似数据类型的多个元素, 从而节省了为每个数据创建不同变量的工作。
PHP基本上有三种类型的数组:

  • 顺序(索引)数组
  • 关联数组
  • 多维数组
顺序数组:那些以有序顺序方式(从0开始, 以n-1结束)具有数字索引的数组称为顺序或索引数组。在PHP中, 默认情况下为数组索引数组。
< ?php // Example of sequential array$arr = array ( "January" , "February" , "March" ); // 1st element echo $arr [0] . "\n" ; // 2nd element echo $arr [1] . "\n" ; // 3rd element echo $arr [2] . "\n" ; ?>

输出如下:
JanuaryFebruaryMarch

关联数组:具有字符串类型的键而不是索引的数组或存在于” 键” , “ 值” 对中的数组称为关联数组。
< ?php // Example of associative array$arr1 = array ( "Month1" => "January" , "Month2" => "February" , "Month3" => "March" ); echo $arr1 [ "Month1" ] . "\n" ; echo $arr1 [ "Month2" ] . "\n" ; echo $arr1 [ "Month3" ] . "\n" ; ?>

输出如下:
JanuaryFebruaryMarch

如何检查PHP数组是关联数组还是顺序数组?
PHP中没有内置的方法可以知道数组的类型。如果顺序数组包含n个元素, 则它们的索引位于0到(n-1)之间。因此, 找到数组键值并检查它是否存在于0到(n-1)中, 然后它是顺序的, 否则为关联数组。
< ?php // Example to check Sequential array// Associative array $arr1 = array ( "Month1" => "January" , "Month2" => "February" , "Month3" => "March" ); // Checking for sequential keys of array arr if ( array_keys ( $arr1 ) !== range(0, count ( $arr1 ) - 1)) echo "Array is associative" ; else echo "Array is sequential \n" ; ?>

输出如下:
Array is associative

【如何在PHP中检查数组是关联数组还是顺序数组()】注意:
  • ===如果$ x和$ y相同且类型相同, 则返回True。
  • !==如果$ x和$ y类型不相等或不相同, 则返回True。
  • ==如果$ x和$ y相等, 则返回True。
  • !=如果$ x不等于$ y, 则返回True。

    推荐阅读