AImager

key

key 可以是 integer 或者 string。key 会有如下的强制转换:

  • 字符串为合法整型值的字符串会被转换为整型。
  • 浮点数也会被转换为整型,意味着其小数部分会被舍去。
  • 布尔值也会被转换成整型。
  • null会被转换为空字符串”“。
  • 数组和对象不能被用为键名。

注意,如果转换后出现key重合,则后面的value会替换掉前面的value。

$array = array(
    -1    => "a",
    "1"  => "b",
    "1" => "c",
    1.5  => "c",
    true => "d",
    null => "nih",
);
var_dump($array);


// 输出
array(3) {
  [-1]=>
  string(1) "a"
  [1]=>
  string(1) "d"
  [""]=>
  string(3) "nih"
}

php不区分索引数组和关联数组,会默认加上递增key,生成的递增key基于前面最后的非负整数key。

$array = array(
    "a",
-6 => "b",
    "c",
"s" => "d",
    "e"
);
var_dump($array);

// 输出
array(5) {
  [0]=>
  string(1) "a"
  [-6]=>
  string(1) "b"
  [1]=>
  string(1) "c"
  ["s"]=>
  string(1) "d"
  [2]=>
  string(1) "e"
}

function

  • array_slice: 取出子数组
  • array_splice: 从offset开始删除length个元素
  • array_udiff: 通过回调函数处理数组比较
  • array_product: 数组元素相乘