function array_delete($key, $array) {
$val = isset($array[$key]) ? $array[$key] : NULL;
unset($array[$key]);
return $val;
}

みたいな関数は標準でありますか。
ようは、配列から値を取り除きつつ、その取り除いた値を取得したいということです。