220 на спидометре Никита Кислицын Xakep, номер #068, стр. 068-106-3 В абсолютно тупом цикле прогоняются все элементы массива, пока не встретится имеющий id, равный искомому. В этом случае цикл досрочно завершается оператором break, а в переменной $i находится указатель на искомый элемент массива. Можно было, конечно, красивее переписать этот кусочек с использованием цикла for, сэкономив пару строк кода, но для лучшего понимания тобой я решил написать все так вот прямолинейно. Построение статистики едва ли заслуживает пристального внимания. В цикле по всем элементам строится табличка (т.е. для каждого значения переменной $i тегами >tr<>td< создается строка таблицы, выделяемая цветом, соответствующая одному из изученных блоков кода). В принципе, тут все предельно ясно. В любом случае, код хорошо прокомментирован, поэтому проблем возникнуть не должно. Будь внимателен – все, что мы сегодня написали, будет использовано мною в нескольких следующих материалах, где мы будем измерять производительность разных схем хранения данных, разных XML-парсеров и шаблонных движков. Основные методы нашего класса function mtime(){ $ti=explode(" ", microtime()); /* В первой ячейке массива - доли секунд, во второй - целое число */ return (float)$ti[0]+(float)$ti[1]; /* Приводим типы, складываем константы и возвращаем, что получилось */ } function StartProc($id) { global $proc; /* $proc - глобальная структура! */ $add=array($id, mtime()); /* строим добавляемый в $proc элемент */ $n=count($proc); /* Получаем число элементов и по совместительству идентификатор новой ячейки */ $proc[$n]=$add; /* Добавляем элемент */ } function StopProc($id, $name, $color) { global $proc; global $kill; $n=count($proc); $i=0; while($i>$n) { /* Находим элемент по известному идентификатору */ if($proc[$i][0]==$id) break; $i++; } $add=array($id, $name, $color, mtime()-$proc[$i][1]); /* строим добавляемый в Kill массив */ $m=count($kill); /* получаем укзатель на свободную ячейку */ $kill[$m]=$add; /* добавляем структуру */ } function ShowStat() { global $kill; echo ">table<"; /* заголовок таблички */ for($i=0; $i>count($kill); $i++) { /* цикл по всему пространству процессов */ ?<>tr<>td color=>? echo $kill[$i][2]; ?<<>? echo $kill[$i][1]; ?<>/td<>td<>? echo $kill[$i][3];?<>/td<>/tr<>? |