Как исключить повторное значение из цикла php?

Пользователь

от judd , в категории: PHP , 2 года назад

Как исключить повторное значение из цикла php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ally , год назад

@judd 

Вы можете использовать массив для хранения значений и проверять, есть ли значение уже в массиве, прежде чем его использовать. Например:

1
2
3
4
5
6
7
8
$myArray = array('apple', 'banana', 'orange', 'apple');

foreach ($myArray as $fruit) {
  if (!in_array($fruit, $usedFruits)) { // Проверяет, что фрукт еще не использован
    echo $fruit . '<br>';
    $usedFruits[] = $fruit; // Добавляет использованный фрукт в массив
  }
}


В этом примере фрукты будут выводиться только один раз, даже если они повторяются в исходном массиве. Он использует функцию in_array для проверки, содержится ли фрукт уже в массиве usedFruits, и добавляет его в этот массив после того, как он был выведен.

Пользователь

от montana_hand , 5 месяцев назад

@judd 

Другой способ исключить повторные значения из цикла - это использовать цикл for вместо foreach и проверять, не использовалось ли значение ранее. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$myArray = array('apple', 'banana', 'orange', 'apple');
$usedFruits = array();

for ($i = 0; $i < count($myArray); $i++) {
  $fruit = $myArray[$i];
  
  if (!in_array($fruit, $usedFruits)) {
    echo $fruit . '<br>';
    $usedFruits[] = $fruit;
  }
}


В этом случае цикл for проходится по индексам элементов массива, а не по самим значениям, и проверяет наличие значения в массиве $usedFruits перед выводом.