插件窝 干货文章 PHP数组键可以由什么组成

PHP数组键可以由什么组成

数组 字符串 转换 array 252    来源:    2025-03-18

在PHP中,数组的键(也称为索引)可以由以下类型的数据组成:

  1. 整数(Integer)

    • 整数是最常见的数组键类型。PHP会自动将字符串形式的数字键转换为整数。
    • 例如:$array = [0 => 'a', 1 => 'b'];
  2. 字符串(String)

    • 字符串也可以作为数组的键。字符串键是区分大小写的。
    • 例如:$array = ['name' => 'Alice', 'age' => 25];
  3. 浮点数(Float)

    • 虽然浮点数可以作为数组的键,但PHP会将浮点数键转换为整数。例如,5.6会被转换为5
    • 例如:$array = [5.6 => 'a']; 实际上等同于 $array = [5 => 'a'];
  4. 布尔值(Boolean)

    • 布尔值也可以作为数组的键,true会被转换为1false会被转换为0
    • 例如:$array = [true => 'a', false => 'b']; 实际上等同于 $array = [1 => 'a', 0 => 'b'];
  5. NULL

    • NULL作为数组键时,会被转换为空字符串""
    • 例如:$array = [null => 'a']; 实际上等同于 $array = ["" => 'a'];
  6. 资源(Resource)

    • 资源类型不能直接作为数组的键,尝试使用资源作为键会导致错误。
  7. 数组(Array)对象(Object)

    • 数组和对象不能直接作为数组的键。尝试使用数组或对象作为键会导致警告,并且键会被转换为字符串"Array""Object"

注意事项:

  • 如果多个元素使用相同的键,后面的值会覆盖前面的值。
  • 数组键是唯一的,不能重复。
  • 数组键的顺序在PHP 7及以上版本中是按照插入顺序保持的。

示例:

$array = [
    0 => 'a',          // 整数键
    'name' => 'Alice', // 字符串键
    5.6 => 'b',        // 浮点数键,实际转换为5
    true => 'c',       // 布尔键,实际转换为1
    null => 'd'        // NULL键,实际转换为空字符串
];

print_r($array);

输出:

Array
(
    [0] => a
    [name] => Alice
    [5] => b
    [1] => c
    [] => d
)

总结来说,PHP数组的键主要由整数和字符串组成,其他类型的数据(如浮点数、布尔值、NULL)会被自动转换为整数或字符串。