@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 перед выводом.