Konrad Rudolph - да, обычно финализатор не делает ничего вообще. Вы не должны реализовывать его, если Вы не имеете дело с неуправляемыми ресурсами.
Затем при реализации его Вы используете , Microsoft располагает шаблон (как уже описано)
public Dispose()
, вызовы protected Dispose(true)
- имеют дело и с управляемыми и с неуправляемыми ресурсами. Вызов Dispose()
должен подавить завершение.
~Finalize
вызовы protected Dispose(false)
- имеет дело с неуправляемыми ресурсами только. Это предотвращает неуправляемые утечки памяти, если Вам не удается звонить public Dispose()
~Finalize
, является медленным, и не должен использоваться, если у Вас действительно нет неуправляемых ресурсов для контакта с.
Управляемые ресурсы не могут утечка памяти, они могут только потратить впустую ресурсы для текущего приложения и замедлить его сборку "мусора". Неуправляемые ресурсы могут просочиться, и ~Finalize
лучшая практика, чтобы гарантировать, чтобы они не делали.
В любом случае using
лучшая практика.
Я думаю, вам нужно сделать это вручную:
# Insert at offset 2
$offset = 2;
$newArray = array_slice($oldArray, 0, $offset, true) +
array('texture' => 'bumpy') +
array_slice($oldArray, $offset, NULL, true);
Я не уверен, есть ли для этого функция, но вы можете перебирать свой массив, сохранять индекс и использовать array_push.
Ну, вы можете перестроить массив с нуля. Но самый простой способ пройти через ассоциативный массив в определенном порядке - это сохранить отдельный массив упорядочивания. Примерно так:
$order=array('color','taste','texture','season');
foreach($order as $key) {
echo $unordered[$key];
}