Ассоциативные массивы PHP могут вставлять новые элементы тремя способами:
$array[$insert_key] = $insert_value;
$array = array_merge($array, $insert_array);
$array = $array+$insert_array;
Но что, если вы хотите вставить элемент перед указанным ключом? Код ниже будет data Вставить в ассоциативный массив array Ключевое название
function wpjam_array_push($array, $data=null, $key=false){
$data = (array)$data;
$offset = ($key===false)?false:array_search($key, array_keys($array));
$offset = ($offset)?$offset:false;
if($offset){
return array_merge(
array_slice($array, 0, $offset),
$data,
array_slice($array, $offset)
);
}else{ // Не указан $key Или, если вы не можете его найти, просто добавьте его в конец.
return array_merge($array, $data);
}
}
Вызов тоже очень простой, например, такой: $columns
из 'author'
вставлено раньше ['page_title'=>'Название страницы']
:
wpjam_array_push($columns, ['page_title'=>'Название страницы'], 'author');