我正在尝试理解这段代码:
<?php
$list = array(-10=>1, 2, 3, "first_name"=>"mike", 4, 5, 10=>-2.3);
print_r(array_keys($list));
?>
Run Code Online (Sandbox Code Playgroud)
输出:
Array ( [0] => -10 [1] => 0 [2] => 1 [3] => first_name [4] => 2 [5] => 3 [6] => 10 )
Run Code Online (Sandbox Code Playgroud)
我想知道为什么[4] => 2 and why [5] => 3我认为这是[4] => 4 and [5] => 5因为它们都在索引4和5.我对这个阵列到底发生了什么感到困惑,如果有可能,有人能指出我正确的方向,谢谢.
您正在使用无密钥数组条目进行混合,因此它有点不稳定:
$list = array(
-10 => 1 // key is -10
=> 2 // no key given, use first available key: 0
=> 3 // no key given, use next available key: 1
"first_name" => "mike" // key provided, "first_name"
=> 4 // no key given, use next available: 2
=> 5 // again no key, next available: 3
10 => -2.3 // key provided: use 10
Run Code Online (Sandbox Code Playgroud)
如果您没有提供密钥,PHP将从0开始分配一个密钥.如果潜在的新密钥与已分配的密钥冲突,则将跳过该潜在密钥,直到PHP找到可以使用的密钥.