PHP

Php + Sql. Если значение массива == 'значение' , делать действие с предыдущими элементами

Здравствуйте! Новичок в php. У меня такая проблема. В общем, Таблица с данными из базы данных. Нужно проверить если в Block есть значение Block, тогда красить ПРЕДЫДУЩИЕ значения до того, пока в Model не будет какое то значение. Примерно показано в таблице. Задание вроде бы было бы не сложное, если бы нужно было бы красить с верха в низ. У меня получается только красить все, что ниже block'а. К сожалению, сначала красить пока не появился Block тоже не вариант, потому что случаи могут быть разные - или Blocka вообще нету или он в самом начале. Нужен ваш совет, с чего лучше начать и какие могут быть возможные решения. Заранее большое спасибо.
Block встречается только один раз? Тогда смог придумать глуповатый способ с двумя переобходами массива, надеюсь кто-нибудь предложит более эффективный вариант.

P.S Уже после отправки ответа подумал, что можно избавиться от второго цикла, а сделать все в одном цикле, только пусть он сканирует массив с конца, как только встретится Block запоминаете значение и делаете пометку для проверки первого столбца. Но переписывать код уже лень, пробуйте сами.

<?php
// получаете данные таблицы в массив такого формата:
$array = [
['None', 0, 1],
['None', 0, 2],
['1231', 0, 3],
['None', 0, 4],
['None', 0, 5],
['ASBA', 'Block', 6],
['None', 0, 7],
['None', 0, 8],
['None', 0, 9],
];

foreach ($array as $key=>$value) { // перебираем исходный массив
if ($value[1] === 'Block') { // если второй элемент вложенного масива = Block
$mark_element_end = $key; // конечный элемент для выделения = текущему ключу масства
break;
}
}

for ($i = $mark_element_end - 1; $i > 0; $i--) { // цикл от $mark_element_end (не включая) до 0
if ($array[$i][0] !== 'None') { // если первый элемент вложенного масива не равен None
$mark_element_start = $i + 1; // начальный элемент для выделения, не включая
break;
}
}

// Делаете цикл для вывода данных в виде таблицы, но строки между $mark_element_start и $mark_element_end выделяете красным
?>
Виталик
Виталик
90 777
Лучший ответ
Юрий Башкатов Интересный способ. Попробую спасибо большое за развёрнутый ответ. ????
Юрий Башкатов Интересный способ. Попробую, спасибо большое за развёрнутый ответ.
Вариантов решения много.
Можете обход с последней строки к первой делать результата mysql и красить.
А можете писать результат в переменную, при этом всем строкам присваивать метку, например #D1#. Когда встретится Block = замена в текущей переменной метки на стиль покраски и далее снова метку присваиваете, в конце меняете метку на пустоту.
Юрий Башкатов Спасибо за ответ. Буду пробовать.