55

array:

A-B-C-D-E-F

J is the son of C. update array so:

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

how do I insert J after C in the array?

I also map the array in a loop (array of comments for display). Will this method take a very long time to perform?

1
  • 4
    Doesn't G come next?! OCD Commented Aug 29, 2013 at 19:41

5 Answers 5

82

You can use array_splice() with $length set to 0.

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

Example:

$arr_alphabet = array('a', 'b', 'd');
array_splice($arr_alphabet, 2, 0, 'c');
// $arr_alphabet is now: array('a', 'b', 'c', 'd');
Sign up to request clarification or add additional context in comments.

2 Comments

There is no other/faster way? :S
How does performance of this function depends on the size of _spliced array?
16

Use the splice function to solve this.

1 Comment

:) Evolution. Only the fast developers survive.
8

For those who run into problems ... I found that @Pekka's solution ended up returning a NULL array because array_splice returns the array consisting of the extracted elements (http://de.php.net/manual/en/function.array-splice.php).

It would be more accurate as follows:

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

Returns:

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

But thanks @Pekka for getting me 95% of the way there!

Comments

6

You can use the splice function:

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

Comments

0

I wrote a function to insert into an array at a specified index:

function array_insert(&$arr, $index, $val)
{
    if (is_array($val))
        array_splice($arr, $index, 0, [$index => $val]);
    else
        array_splice($arr, $index, 0, $val);
}

It will also work for multidimensional arrays but only with a numerical key.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.