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

📅  最后修改于: 2022-05-13 02:24:09.162000             🧑  作者: Mango

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

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

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

顺序数组:那些以有序的顺序方式(从 0 开始,以 n-1 结束)具有数字索引的数组称为顺序或索引数组。在PHP,默认数组索引数组。


输出:
January
February
March

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

 "January",
             "Month2" => "February",
             "Month3" => "March" 
        );
  
echo $arr1["Month1"] . "\n";
echo $arr1["Month2"] . "\n";
echo $arr1["Month3"] . "\n";
?>
输出:

January
February
March

如何检查PHP数组是关联的还是顺序的?
PHP没有内置的方法来知道数组的类型。如果顺序数组包含 n 个元素,则它们的索引位于 0 到 (n-1) 之间。所以找到数组键值并检查它是否存在于 0 到 (n-1) 中,那么它是顺序的,否则是关联数组。

 "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

笔记:

  • ===如果 $x 和 $y 相等且类型相同,则返回 True。
  • !==如果 $x 和 $y 不相等或类型不同,则返回 True。
  • ==如果 $x 和 $y 相等则返回 True。
  • !=如果 $x 不等于 $y,则返回 True。