badah
11/7/2015 - 1:08 PM

Insert a value or key/value pair before a specific key in an array. If key doesn't exist, value is prepended to the beginning of the array.

Insert a value or key/value pair before a specific key in an array. If key doesn't exist, value is prepended to the beginning of the array.

<?php

/**
 * Insert a value or key/value pair before a specific key in an array.  If key doesn't exist, value is prepended
 * to the beginning of the array.
 *
 * @param array $array
 * @param string $key
 * @param array $new
 *
 * @return array
 */
public static function array_insert_before( array $array, $key, array $new ) {
	$keys = array_keys( $array );
	$pos = (int) array_search( $key, $keys );

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