Необходимо в цикле 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');
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
здравствуйте, пишу клиент-серверное приложение, в итоге для каждого соединения хочу брать поток из QThreadPool
Здравствуйте, я пытаюсь записать и прочитать созданный класс WRstrcut, используя ostream_iterator и istream_iteratorС записью проблем нет, а вот с чтением есть
Мне главное чтобы я мог из любого класса связаться с объектом любого другого класса (для этого я делаю наследование)Но запутался как правильно...