В PHP Ключ не является обязательным. Если он не указан, PHP будет использовать приращение крупнейшего ранее использованного целого ключа
Как если: -
$a = array(1 => 'One', 3, 3 => 'Two');
var_dump($a);
выход: -
array(3) {
[1]=>
string(3) "One"
[2]=>
int(3)
[3]=>
string(3) "Two"
}
Здесь для второго значения один прирост от предыдущего значения т.е. 2.
Теперь
говорят массив: -
$a = array('1' => 'One', '3', '3' => 'Two');
var_dump($a);
выход будет
array(3) {
[1]=>
string(3) "One"
[2]=>
string(1) "3"
[3]=>
string(3) "Two"
}
Вот и здесь для второго значения одного это приращение от предыдущего значения 2 т.е..
Теперь третий случай: -
Если массив: -
$a = array('1' => 'One', '1' => 'two' , '1' => 'Three');
var_dump($a);
выход будет: -
array(1) {
[1]=>
string(5) "Three"
}
Это потому, что ассоциативный массив сохранить значение в качестве карты и, если ключ присутствует он перезаписывает значение в этом случае 1 перезаписывает 2 раза, в результате получается три
In y В нашем случае: -
$a = array('1' => 'One', '3', '2' => 'Two');
print_r($a);
Выход
Array
(
[1] => One
[2] => Two
)
это потому, что: -
первый ключ карта: - '1' => 'one'
снова
PHP будет держать второй значение '2' => '3'
Теперь, как и в массиве «2» назначается как «два», значение становится
'2' => 'Two'
, что означает его перезапись.
где вы это получили? Ассоциативный массив просто используется для установки нашего собственного ключа, чем его ключи по умолчанию. –
Я получаю это от [link] (http://php.net/manual/en/function.array.php). В нем говорится: «Когда индекс опущен, автоматически генерируется целочисленный индекс, начиная с 0. Если индекс является целым числом, следующий сгенерированный индекс будет самым большим индексом целых чисел + 1». – Jane
любезно используйте этот код и проверьте его '$ a = array ('1' => 'One', '3', '3' => 'Two'); print_r ($ а), ' –