[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вставить элемент в массив.
LRCenter
Допустим есть массив:

$arr = array("1", "2", "3", "4");


Как можно вставить новый элемент, не с конца, а в середину, в нужное место, чтоб например привести массив к виду:

$arr = array("1", "2", "2.5", "3", "4");




Спустя 9 минут, 15 секунд (9.02.2011 - 20:30) sergeiss написал(а):
У меня в подписи есть ссылка на хэлп по ПХП... Там есть много функций для работы с массивами.

Спустя 18 минут, 54 секунды (9.02.2011 - 20:49) LRCenter написал(а):
sergeiss, да смотрел я в этих функциях, нет ниче похожего.

Спустя 22 минуты, 33 секунды (9.02.2011 - 21:11) LRCenter написал(а):
Спасибо, разобрался, комбинацией функций только можно - специальной функции нет.

Спустя 1 час, 17 минут, 29 секунд (9.02.2011 - 22:29) Snus написал(а):
$arr[] = '2.5';
sort($arr);

Спустя 5 минут, 5 секунд (9.02.2011 - 22:34) sergeiss написал(а):
Я бы так сделал:

// исходные данные
$pos=4; // где вставлять - индекс вставки, начиная с 0
$a=.... ; // массив, куда вставлять, предполагаем, что он достаточно большой и предполагаем, что ни в начало, ни в конец не добавляем
$new=... ; // значение для вставки в массив

// создаем новый массив

$a_new=array_merge( array_slice( $a, 0, $pos), array($new), array_slice( $a, $pos) );
var_dump( $a_new ); // проверяем, что получилось


Snus - но так ты мало того, что вставишь в произвольное место массива, так еще и вообще его перемешаешь :) А этого не было в условии задачи.

Спустя 5 минут, 2 секунды (9.02.2011 - 22:39) Snus написал(а):
sergeiss
Я основывался, исходя из исходных данных
$arr = array("1", "2", "3", "4");

и того, что он хотел получить на выходе
$arr = array("1", "2", "2.5", "3", "4");


:P

Спустя 4 минуты, 1 секунда (9.02.2011 - 22:43) sergeiss написал(а):
Это совсем уж частный случай smile.gif А решение надо делать такое, чтобы оно было по возможности универсальным.

Спустя 7 часов, 38 минут, 26 секунд (10.02.2011 - 06:21) LRCenter написал(а):
Snus
Да, числа я привел для наглядности, а решение должно быть универсальным.



sergeiss
Да, примерно так и сделал, тоже использовал array_merge() и array_slice()


_____________
Меньше кода - меньше багов ©
Быстрый ответ:

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