Изменение массива

Ventura

Новичок
Изменение массива

Два месяца назад я спрашивал как удалить элемент из массива или вставить новый. Мне тогда ответили что мол самое простое пересобирать заново.

Но сегодня я попробовал два варианта

$ar=array("10","20","30");
array_splice($ar,1,0,"15");
array_splice($ar,2,1);

Первый замечательно вставляет "15" между 10 и 20 ,а второй также замечательно удаляет 20 между 15 и 30.
 

Yurik

/dev/null
array_splice always drops keys from the replacement.
Example :
PHP:
$tmp = array( "a" => "toto" , "b" => "titi" , "c" => "tutu" );
array_splice($tmp, 1, 1, array("d" => "tata" ));
print_r($tmp);
will result in :
Код:
Array ( [a] => toto [0] => tata [c] => tutu ) 
where one would expect :
Array ( [a] => toto [d] => tata [c] => tutu )
Также чтобы вставить или удалить нужно знать именно Offset а не ключ, а ключи имеют свойство переиндексироваться при удалениях.

Вот глянь коммент от "07-Aug-2003 09:36" (удаление) и "18-Aug-2003 04:57" (вставка)
http://www.php.net/manual/en/function.array-splice.php
 

Ventura

Новичок
Да. Для ассоциативных массивов отрабатывается не так как хочется. На то они и ассоциативные. Просто я спрашивал тогда именно про обыкновенные , и мне гуру посоветовали пересобирать. Поэтому я и запостил, чтоб кто не знает, не мучались как мне пришлось.
 

Фанат

oncle terrible
Команда форума
а ты прямо, бедняжечка, так мучался, так мучался - две строчки написать?
Похудел, наверное, потенция упала?
 
Сверху