@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
, и добавляет его в этот массив после того, как он был выведен.
@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
перед выводом.