插件窝 干货文章 php中的数组键可以是什么

php中的数组键可以是什么

整数 字符串 转换 数组 200    来源:    2025-03-18

在PHP中,数组的键(也称为索引)可以是以下两种类型之一:

  1. 整数(Integer)

    • 整数键可以是任何有效的整数值,包括正数、负数和零。
    • 如果键是一个整数,PHP会将其视为数字索引。
  2. 字符串(String)

    • 字符串键可以是任何有效的字符串值。
    • 如果键是一个字符串,PHP会将其视为关联数组的键。

注意事项:

  • 自动类型转换:如果使用一个字符串键,但该字符串可以被解释为一个有效的整数(例如 "123"),PHP会自动将其转换为整数类型。例如:

    $array = [
      "123" => "value1",
      "456" => "value2"
    ];
    // 这里的键 "123" 和 "456" 会被自动转换为整数 123 和 456。
    
  • 浮点数键:虽然PHP允许使用浮点数作为键,但浮点数会被自动转换为整数。例如:

    $array = [
      1.5 => "value1",
      2.9 => "value2"
    ];
    // 这里的键 1.5 和 2.9 会被转换为整数 1 和 2。
    
  • 布尔值键:布尔值 truefalse 也会被转换为整数 10。例如:

    $array = [
      true => "value1",
      false => "value2"
    ];
    // 这里的键 true 和 false 会被转换为整数 1 和 0。
    
  • NULL 键:如果使用 NULL 作为键,它会被转换为空字符串 ""。例如:

    $array = [
      null => "value1"
    ];
    // 这里的键 null 会被转换为空字符串 ""。
    
  • 数组和对象键:数组和对象不能直接作为数组的键。如果尝试这样做,PHP会抛出一个警告,并将键转换为字符串 "Array""Object"

示例:

$array = [
    0 => "zero",          // 整数键
    "one" => 1,           // 字符串键
    1.5 => "one point five", // 浮点数键,会被转换为整数 1
    true => "true",       // 布尔值键,会被转换为整数 1
    null => "null"        // NULL 键,会被转换为空字符串 ""
];

print_r($array);

输出:

Array
(
    [0] => zero
    [one] => 1
    [1] => one point five
    [] => null
)

总结:

  • PHP数组的键可以是整数或字符串。
  • 其他类型的键(如浮点数、布尔值、NULL)会被自动转换为整数或字符串。
  • 数组和对象不能直接作为数组的键。