如何在PHP中检查数组是关联的还是顺序的?

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

null
  • 顺序(索引)数组
  • 关联数组
  • 多维数组

顺序阵列: 以有序顺序方式(从0开始,以n-1结束)具有数字索引的数组称为顺序或索引数组。在PHP中,默认情况下是数组索引数组。

<?php
// Example of sequential array
$arr = array ( "January" , "February" , "March" );
// 1st element
echo $arr [0] . "" ;
// 2nd element
echo $arr [1] . "" ;
// 3rd element
echo $arr [2] . "" ;
?>


输出:

January
February
March

关联数组: 具有字符串类型键而不是索引的数组,或者存在于(’key’,’value’)对中的数组称为关联数组。

<?php
// Example of associative array
$arr1 = array ( "Month1" => "January" ,
"Month2" => "February" ,
"Month3" => "March"
);
echo $arr1 [ "Month1" ] . "" ;
echo $arr1 [ "Month2" ] . "" ;
echo $arr1 [ "Month3" ] . "" ;
?>


输出:

January
February
March

如何检查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 " ;
?>


输出:

Array is associative

注:

  • === 如果$x和$y相等且类型相同,则返回True。
  • !== 如果$x和$y不相等或类型不同,则返回True。
  • == 如果$x和$y相等,则返回True。
  • != 如果$x不等于$y,则返回True。
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享