badah
11/7/2015 - 1:04 PM

Insert a value or key/value pair after a specific key in an array. If key doesn't exist, value is appended to the end of the array.

Insert a value or key/value pair after a specific key in an array. If key doesn't exist, value is appended to the end of the array.

<?php

/**
 * Insert a value or key/value pair after a specific key in an array.  If key doesn't exist, value is appended
 * to the end of the array.
 *
 * @param array $array
 * @param string $key
 * @param array $new
 *
 * @return array
 */
function array_insert_after( array $array, $key, array $new ) {
	$keys = array_keys( $array );
	$index = array_search( $key, $keys );
	$pos = false === $index ? count( $array ) : $index + 1;

	return array_merge( array_slice( $array, 0, $pos ), $new, array_slice( $array, $pos ) );
}