发布于 4年前

php 有关array_keys,array_merge的一次报错

array_merge 类型不同导致的问题

$a = ['1'=>'php',2=>'mysql',3=>'redis'];
$c = ['1'=>'zabbix','2'=>'mysql'];

$d = array_merge($a,$c);
var_dump($d);

结果如下

array(5) {
  [0]=>
  string(3) "php"
  [1]=>
  string(5) "mysql"
  [2]=>
  string(5) "redis"
  [3]=>
  string(6) "zabbix"
  [4]=>
  string(5) "mysql"
}

我们发现当key为数字的时候,array_merge是不会进行去重的!!!!

array_keys 导致的类型转换

$a = ['1'=>'php','2'=>'mysql','3'=>'redis'];
var_dump(array_keys($a));

结果

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

我们发现key通过array_keys之后都变成了int类型!!!

PHP
©2020 edoou.com   京ICP备16001874号-3