2009-11-19 5 views
44

массива:Вставить в массив в определенном месте

A-B-C-D-E-F 

J является сыном С. массива обновления так:

A-B-C-J-D-E-F 

как вставить J после C в массиве?

Я также сопоставляю массив в цикле (массив комментариев для отображения). Будет ли этот метод работать очень долго?

+3

Не подходит ли G? * OCD * – jocull

ответ

63

Вы можете использовать array_splice() с $ длины значение 0.

http://de.php.net/manual/en/function.array-splice.php

Пример:

$arr_alphabet = array('a', 'b', 'd'); 
array_splice($arr_alphabet, 2, 0, 'c'); 
// $arr_alphabet is now: array('a', 'b', 'c', 'd'); 
+0

Нет другого/более быстрого способа? : S –

+0

Как производительность этой функции зависит от размера массива '_splice'd? –

15

Используйте функцию сращивания для решения это.

+0

:) Эволюция. Только быстрые разработчики выживают. – aytek

6

Для тех, кто сталкивается с проблемами ... Я обнаружил, что решение @ Pekka закончило тем, что возвращало массив NULL, потому что array_splice возвращает массив, состоящий из извлеченных элементов (http://de.php.net/manual/en/function.array-splice.php).

Было бы более точным следующим образом:

$arr_alphabet = array('a', 'b', 'd'); 
array_splice($arr_alphabet, 2, 0, 'c'); 
print_r($arr_alphabet); 

Возвращает:

Array ([0] => a [1] => b [2] => c [3] => d) 

Но благодаря @Pekka для получения меня 95% пути там!

Смежные вопросы