混合键的PHP关联数组中缺少值

时间:2018-10-16 19:30:13

标签: php arrays

在研究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吗?

2 个答案:

答案 0 :(得分: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
)

答案 1 :(得分:0)

您没有正确的引号和数字。 试试这个:

                        obj = JSON.parse(JSON.stringify("Hello from parent"));
//                      var val = "<?php echo $msg ?>";
//                      obj = JSON.parse(var);