[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление элемента в середину массива
McLotos
Добрый вечер. Подскажите, как можно добавить несколько элементов в массив так чтобы изменилась нумерация всех кто после них
Ну вот например есть массив
$array[0]['key1']
$array[1]['key2']
$array[2]['key3']
и т.д.
скрипт перебирает этот массив и в один прекрасный момент понимает что например между 10 и 11 нужно воткнуть ещё n новых элементов. Как это сделать чтобы все кто после позиции вставки поменяли свои идентификаторы на +n?
Первоначальное количество элементов, место вставки, количество вставляемых элементов заранее не известны, всю это информацию можно получить только непосредственно перед вставкой.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
Функции работы с массивами: http://www.php.net/manual/ru/book.array.php

Для твоего случая http://www.php.net/manual/ru/function.array-merge.php, для этой функции указываем первую часть исходного массива (найди сам нужную функцию в списке), затем новые данные, затем вторую часть исходного массива.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
McLotos
sergeiss
спасибо, а то я тут уже начал жонглировать array_pad & array_fill =)

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
Ну а вообще, можно свою функцию написать, которая сделает нужное действие smile.gif Очень легко и просто - нужно только знать, после какого элемента (его ключ или индекс) надо сделать вставку. Просто идешь циклом по массиву и добавляешь эти же элементы в новый массив. Как добрался до места вставки, внутри цикла запускаешь другой цикл, который вставляет данные в новый массив из второго массива. И затем доходишь до конца первый цикл, вставляя в новый массив вторую часть исходного массива... В коде будет существенно меньше букоФФ, чем я написал в алгоритме работы.

Попробуй сделать! Там работы "на 5 минут с перекурами".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
kaww
SergeySA, вот, специально для таких целей http://www.php.net/manual/ru/class.splpriorityqueue.php
glock18
Вау, столько предложений разных. как насчет array_splice?
sergeiss
Цитата (glock18 @ 26.12.2013 - 08:14)
как насчет array_splice

Да можно и её smile.gif Я ужО спать собирался когда отвечал, сильно не вникал. Впрочем, насчет идеи автору темы "сделать самому" не откажусь, пусть потренируется.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.