Существует ли какой-то способ сбросить внутренний счетчик массива? (ну или как оно называется, не знаю)
Пример:
$a = [
2 => 2,
3 => 3,
];
unset($a[3]);
$a[] = 4;
var_dump($a);
результатом будет:
array(1) {
[2] => int(2),
[4] => int(4)
}
Что, не то чтобы мешает, но да, а еще дико бесит.
Есть ли какой-то способ, не пересоздавая массив, сбросить в нём эту самую штуку, чтобы после
kakaya_to_mahinaciya($a)
$a[] = 4;
получить:
array(1) {
[2] => int(2),
[3] => int(4)
}
вы в своем вопросе фактически привели пример из документации по массивам, иллюстрирующем как они работают в принципе.
Как уже говорилось выше, если ключ не был указан, то будет взят максимальный из существующих целочисленных (integer) индексов, и новым ключом будет это максимальное значение (в крайнем случае 0) плюс 1. Если целочисленных индексов еще нет, то ключом будет 0 (ноль).
Учтите, что максимальное целое значение ключа не обязательно существует в массиве в данный момент. Оно могло просто существовать в массиве какое-то время, с тех пор как он был переиндексирован в последний раз. Следующий пример это иллюстрирует:
и тут можно привести ваш пример кода.
там же явным текстом написано, что для переиндексации использовать array_values
.
Так что в целом ответ на ваш вопрос - "никак, так устроен пхп".
Единственное замечание, что array_values
сбросит ассоциативные ключи, поэтому в случае смешанных массивов можно использовать array_merge
с единственным аргументом - самим массивом. Это оставит строковые ключи и перенумерует целочисленные.
В результирующем массиве значения исходного массива с числовыми ключами будут перенумерованы в возрастающем порядке, начиная с нуля.
Попробуй воспользоваться функцией foreach(), она разбивает его на ключ и значение , тем самым перебирая массив.Вот пример:
`
<?php
$arr=array('1' => 'a','2' => 'b');
foreach($arr as $key => $val){
echo "[$key] =>".$val.'<br>';
}
?>
`
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Существует сущность Activity, и она связана с другими полиморфной связьюВ сущности Acitivity включено мягкое удаление, и существует поле 'deleted_at'
Сайт сделан на wp, не приходили клиенту письма при заказеСоздал тестовый файл /send
Добрый день! Есть стандартный класс для авторизации UserВ нём мне надо сделать так, чтобы данные о пользователях брались из баз данных