PHP для проверки дубликатов последовательных значений - PullRequest
0 голосов
/ 10 декабря 2010

Я отображаю некоторые данные в PHP и ищу логику для проверки дубликатов, но только последовательных дубликатов.

Например, прямо сейчас у меня есть этот список музыки, исполняемой на концерте:

Девятая симфония Бетховена
- часть 1

Девятая симфония Бетховена
- часть 2

Малерская симфония
- часть 1

Девятая симфония Бетховена
- часть 4

Вместо этого я хотел бы, чтобы это читалось так - чтобы я не повторял заголовок, ЕСЛИ он совпадает с заголовком предыдущего элемента. Но если это не то же самое, что элемент перед ним, он снова отобразит заголовок.

Девятая симфония Бетховена
- часть 1
- часть 2

Малерская симфония
- часть 1

Девятая симфония Бетховена
- часть 4

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010

Вам просто нужно сохранить последнее название концерта, которое вы напечатали, в некоторой переменной, чтобы вы могли сравнивать его с текущим названием концерта при распечатке каждого из них.Когда они равны, ничего не печатайте, если нет, обновите переменную и напечатайте новое имя концерта.

while ($row = mysql_fetch_array($result_resource)) {

    if (!isset($last) || $last != $row['concert_name']) {
        $last = $row['concert_name'];
        echo "<h1>" . $row['concert_name'] . "</h1>";
    }
    echo $row['song_name'] . "<br />";

}
0 голосов
/ 10 декабря 2010

Предположим, у вас есть список объектов симфонии, $ musicList.Каждый элемент имеет свойства заголовка и номера детали.

$previousTitle = 0;
foreach ($musicList as $item) {
  if ($item->title != $previousTitle) {
    print $item->title;
  }
  print "- " . $item->partNumber;

  $previousTitle = $item->title;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...