@Zimaell

Как сложить повторяющиеся координаты по одной оси?

Суть такова - есть список пошаговых координат, перемещения объекта (объект перемещается по сетке x,y)
$arr=array(
  "15,4",
  "16,4",
  "17,4",
  "18,4",
  "19,4",
  "20,4",
  "21,4",
  "22,4",
  "23,4",
  "23,5",
  "23,6",
  "23,7",
  "23,8",
  "23,9",
  "23,10");

Если посмотреть на это графически то это движение вниз и вправо, то есть много одинаковых координат по одной оси, мне нужно привести менее затратный массив, то есть чтобы он получился таким
$arr=array(
  "15,4",
  "23,4",
  "23,10");

таким образом есть координаты начала, поворота и конца.
Вопрос - как это можно сделать кодом?
Сижу вот кручу мучу и что-то не въеду как...
foreach($arr as $v){
  $c=explode(",",$v);
  $x=$c[0];
  $y=$c[1];
  ..........
  }
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
vechnokrainii
@vechnokrainii
ну почти всегда(
если на скорую руку то так
$arr = [];
$n = 0;
foreach($arr as $v){
  $c=explode(",",$v);
if($n==0) {
  $ar[$n] = $c;
$n++;
continue;
}
if($ar[$n-1][0] !== $c[0]) {
    if($ar[$n-1][1] !== $c[1]) {
$arr[$n]= $c;
$n++;
continue;
}
}
}
Ответ написан
Комментировать
Adamos
@Adamos
Вам всего-то нужно убрать записи, которые одинаково отличаются от предыдущей и последующей (меняется координата только по одной и той же оси).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы