Insert into array at a specified place

前端 未结 5 1225
失恋的感觉
失恋的感觉 2020-12-11 00:11

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 arr

相关标签:
5条回答
  • 2020-12-11 00:40

    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.

    0 讨论(0)
  • 2020-12-11 00:47

    Use the splice function to solve this.

    0 讨论(0)
  • 2020-12-11 00:53

    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!

    0 讨论(0)
  • 2020-12-11 01:01

    You can use the splice function:

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

    0 讨论(0)
  • 2020-12-11 01:03

    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');
    
    0 讨论(0)
提交回复
热议问题