array_unshift()だとキーを指定できないので下記のように少々工夫を行う。
$ar = [ 'key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3', 'key4' => 'val4', ]; // いったん配列をひっくり返す $tmp = array_reverse($ar, true); // 配列の最後に要素を追加 $tmp['key0'] = 'val0'; // そしてもっかいひっくり返す $ar = array_reverse($tmp, true);
トリッキーだけどなかなかよさ気。