Необходимо в цикле foreach проверить значение массива на текущей итерации с последуйщей.
К примеру мой цикл: foreach ($products as $product)
И нужно текущее поле $product['model'] сравнить с следуйщим. Как написать условие?
Гораздо проще сравнивать с предыдущей.
$last = null;
foreach ($products as $product) {
if($product['model'] === $last){
echo "YES!";
}
$last = $product['model'];
}
Если прям надо со следующим, то
reset($products);
for($i = 0; $i < count($products) - 1; ++$i) {
$current = current($products);
$next = next($products);
if ($current['model'] === $next['model']) {
echo "YES!";
}
}
Сравнивать с предыдущим и последующим
$last = null;
reset($products);
for($i = 0; $i < count($products) - 1; ++$i) {
$current = current($products);
$next = next($products);
if ($current['model'] === $next['model']) {
echo "NEXT MATCHES";
}
if ($current['model'] === $last) {
echo "LAST MATCHES";
}
$last = $current['model'];
}
Если вы используете индексный массив, то проще всего воспользоваться циклом for:
for ($i = 0; $i < count($products) - 1; $i++) {
if($products[$i]['model'] === $products[$i + 1]['model']) {
echo('Same');
}
}
А почему бы не использовать классический цикл while?
Например вот так:
reset($products);
while($current = current($products)) {
$next = next($products);
if ($next && $next['model'] === $current['model']) {
echo('Same');
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости