Поскольку вы добавляете экземпляры в массив, убедитесь, что массив in_array()
использует строгий режим сравнения:
$temp = new tempClass($x, $y);
if (!in_array($temp, $temp_array, true)) {
$temp2_array[] = $temp;
}
Кроме того, вы должны понимать, что 2 разных экземпляра класса, даже если они содержат одни и те же данные, по-прежнему 2 разных экземпляра. Вам нужно будет создать свой собственный цикл и сравнить свои экземпляры вручную, если вы хотите узнать, совпадают ли 2 экземпляра.
Вы можете опустить строгий режим, который будет сравнивать членов класса, но как только у вас будет другой член, он будет не равен.
$temp = new tempClass($x, $y);
if (!in_array($temp, $temp_array)) {
$temp2_array[] = $temp;
}