Использование ссылок в циклах foreach вызывает проблемы :) Я делал это несколько раз и всегда переписывал этот код.
Тебе тоже следует. Как это:
foreach($uNewAppointments as $newAppointmentKey => $newAppointment)
{
foreach($appointments as $appointmentKey => $appointment)
{
if($appointment == $newAppointment){
appointments[$appointmentKey]['index'] = $counter;
}
}
$uNewAppointments[$newAppointmentKey]['index'] = $counter;
$$uNewAppointments[$newAppointmentKey][$counter] = $newAppointment;
$counter++;
}
Хотя я только что переписал его «механически», так что, вероятно, он не будет работать. Но это получить представление о том, как добиться того же эффекта, без побочных эффектов. В этом цикле вы все еще изменяете исходные массивы.