Мой вопрос похож на этот одно-Не задано многомерное значение массива, порядок и возврат в Php?
PHP | Remove element from array with reordering?
... за исключением того, что, когда я вернусь в упорядоченный массив, я хочу ключи, чтобы начать с 1. Мой массив, однако, является многомерным. Из чтения комментариев в руководстве PhP о функции array_values я понимаю, что с ключами происходит что-то странное (Carsten Milkau пишет: «Обратите внимание, что в многомерном массиве каждый элемент может быть идентифицирован с помощью последовательности ключей, то есть ключи, которые ведут к этому элементу. ')
Это меня озадачивает, так как кажется, что я больше не могу просто использовать цикл foreach для итерации по массиву и каждый раз добавлять 1 к значению ключа. Я бы очень признателен за помощь в этом, в противном случае я буду иметь, чтобы реализовать некоторые серьезно уродливые и многословный работу вокруг ... вот мой код:
// $orderedData contains, for example, $orderedData['image_data'][1]['code'] and $orderedData['image_data'][1]['caption'] etc.
function remove_image($orderedData, $imageNo){
unset($orderedData['image_data'][$imageNo]);
$newArray = array_values($orderedData['image_data']);
// Now I need to shift the keys of $newArray so that $newArray[0]['code'] becomes $newArray[1]['code'] etc.
}
Когда я начал программировать я ненавидела, что отсчет начинается с 0 не с 1, со временем я привыкнуть к нему и нашел некоторый здравый смысл в нем. Также есть много преимуществ от начала отсчета от 0 даже при сохранении порядка записей в базе данных. – Nazariy