php - 具有混合键的 PHP 关联数组中缺少一个值
问题描述
在研究 PHP 数组时,我遇到了一个相当古玩的例子:
<?php
$example = array(
"1"=>"A", 1=>"B", "C", 2=>"D"
);
var_dump($example);
?>
我期待这段代码显示三个值:B、C 和 D。相反,只打印 B 和 D:
array(2) {
[1]=>
string(1) "B"
[2]=>
string(1) "D"
}
我知道 A 被 B 替换,因为键(字符串)“1”实际上被转换为(int)1。
我知道整数键是通过将 1 添加到数组的最后定义的整数键来创建的。值 C 是否被 D 替换,因为在创建数组时,下一个可能分配给 C 的整数键是 1+1 = 2 ?
解决方案
正是如此。您可以通过将 D (顺便记住引号)分配给不同的键来测试它:
<?php
$example = [ "A", "B", 1 => "C" ];
print_r($example);
<?php
$example = [ "1" => "A", "1" => "B", "C", 3 => "D" ];
print_r($example);
结果:
Array
(
[0] => A
[1] => C
)
Array
(
[1] => B
[2] => C
[3] => D
)
推荐阅读
- c++ - std::unique_ptr
API 禁止派生到基指针的转换 - android - 在哪里可以找到 Material Design 动画图标的示例?
- amazon-web-services - Cloudformation Cloudwatch 输入模板格式
- java - SPARK 中 DELETE 和 UPDATE 语句的替代方案
- javascript - php中文件上传的文件路径
- c# - 消除额外的正/反斜杠并构建 URL
- r - 在R中的列表中重命名变量的名称
- c# - 将整数转换为日期时间并比较 c# 中的日期
- javascript - 向 Ember 适配器添加动态变量?
- android - 如何在 BehaviourSubject 中设置默认值