<?php
/*
File : image_generator.php
Purpose : generating full hall images and thumbs on fly
Created : 29.10.2010
*/
// Check GET parameters we need to recognize the goal
if( isset( $_GET["pid"] ) && is_numeric( $_GET["pid"] ) ) {
require('includes/classes/SqlFunc.inc.php');
$db = new CustomSQL();
$show_id = $_GET["pid"];
$free_tickets = array();
$bron_tickets = array();
$all_tickets = array();
$coords = array();
//echo '1';
$hall_img = $db -> isNewHall( $show_id );
$tdata = $db -> getNewTickets($show_id);
#########################################################
#########################################################
if( !empty($hall_img[1]) ) {
$saal = $db -> checkHall( $show_id );
# LABELS OF SAAL CONSTRUCTOR
$labels = @unserialize($hall_img[1]);
for( $lk = 1; $lk < count($labels); $lk++){
$labels[$lk][2] = html_entity_decode($labels[$lk][2], null , "utf8");
}
# BUEHNE COORDS
$cs_buhne["x0"] = $labels[0][0];
$cs_buhne["y0"] = $labels[0][1];
$cs_buhne["w"] = $labels[0][2];
$cs_buhne["h"] = $labels[0][3];
$saal_str = $saal[0][0].' ';
$saal_coords = unserialize( $saal_str );
$saal_max_x = 0;
$saal_max_y = 0;
for ( $i = 0; $i < count ( $saal_coords ); $i = $i + 6 ){
$cs = @count( $cs_coords );
#$cs_coords[$cs]['block'] = $saal_coords[$i][0]; // 'parkett links'
#$cs_coords[$cs]['place'] = $saal_coords[($i+2)][2]; // 'x' place
#$cs_coords[$cs]['row'] = $saal_coords[($i+1)][1]; // 'y' row
$cs_coords[$cs]['x'] = $saal_coords[($i+3)][3]; // X coord
$cs_coords[$cs]['y'] = $saal_coords[($i+4)][4]; // Y coord
// define hall width and height for newest plan generator
if( ($cs_coords[$cs]['x'] * 1) > ($saal_max_x * 1) ) $saal_max_x = $cs_coords[$cs]['x'] * 1;
if( ($cs_coords[$cs]['y'] * 1) > ($saal_max_y * 1) ) $saal_max_y = $cs_coords[$cs]['y'] * 1;
}
if( $tdata['pid'] > 0 && $tdata['places'] != '' ){
$saal_new_tickets = unserialize($tdata['places']);
#var_dump($saal_new_tickets);
#echo count($saal_new_tickets).' tickets in perfomance. ';
$bronn = $db -> getNewBronTickets( $show_id );
#echo count($bronn).' orders. ';
if ( count($bronn) > 0 ){
for ( $j = 0; $j < count ( $bronn ); $j++ ){
$bron = unserialize($bronn[$j]['orders']);
for ( $i = 0; $i < count ( $bron ); $i++ ){
$count = count($bron_tickets);
$bron_tickets[$count][0] = $bron[$i]['block'];
$bron_tickets[$count][1] = $bron[$i]['row'];
$bron_tickets[$count][2] = $bron[$i]['place'];
$bron_tickets[$count][3] = sprintf("%.2f",$bron[$i]['price']);
}
}
}
#echo count($bron_tickets).' tickets ordered. ';
$coords = array();
$colorprice = array();
# COLORPRICE
for ( $i = 0; $i < count ( $saal_new_tickets ); $i++ ){
if ( count($colorprice) == 0 ){
$colorprice[0]['color'] = 1;
$colorprice[0]['price'] = sprintf("%.2f",$saal_new_tickets[$i][5]);
}
else{
$identity = false;
$saal_new_tickets_pr = sprintf("%.2f",$saal_new_tickets[$i][5]);
for ( $j = 0; $j < count ( $colorprice ); $j++ ){
if ( $colorprice[$j]['price'] == $saal_new_tickets_pr )
$identity = true;
}
if ( !$identity ){
$cc = count ( $colorprice );
$colorprice[$cc]['color'] = $colorprice[($cc - 1)]['color'] + 1;
$colorprice[$cc]['price'] = $saal_new_tickets_pr;
}
}
}
foreach($saal_new_tickets as $key1=>$val1){
$identity = false;
foreach($bron_tickets as $key2=>$val2){
$bron_price = sprintf("%.2f",$bron_tickets[$key2][3]);
$saal_new_tickets_price = sprintf("%.2f",$saal_new_tickets[$key1][5]);
#echo ($bron_tickets[$key2][2]);
#echo ' - ';
#echo ($saal_new_tickets[$key1][2]);
#echo '<br>';
if ( ( (strtolower($bron_tickets[$key2][0])) == (strtolower($saal_new_tickets[$key1][0])) ) && ( strtolower($bron_tickets[$key2][1]) == strtolower($saal_new_tickets[$key1][1]) ) && ( strtolower($bron_tickets[$key2][2]) == strtolower($saal_new_tickets[$key1][2]) ) ){
$identity = true;
#echo $saal_new_tickets[$key1][0].'<br>';
}
}
if ( !$identity ){
for ( $n = 0; $n < count ( $colorprice ); $n++ ){
$saal_new_tickets_pr = sprintf("%.2f",$saal_new_tickets[$key1][5]);
if ( $saal_new_tickets_pr == $colorprice[$n]['price'] ){
$saal_new_tickets[$key1][6] = $colorprice[$n]['color'];
}
}
$c = count( $coords );
$coords[$c]['block'] = $saal_new_tickets[$key1][0]; // 'parkett links'
$coords[$c]['place'] = $saal_new_tickets[$key1][2]; // 'x' place
$coords[$c]['row'] = $saal_new_tickets[$key1][1]; // 'y' row
$coords[$c]['x'] = $saal_new_tickets[$key1][3]; // X coord
$coords[$c]['y'] = $saal_new_tickets[$key1][4]; // Y coord
$coords[$c]['price'] = $saal_new_tickets[$key1][5]; // ticket's price
$coords[$c]['color'] = $saal_new_tickets[$key1][6]; // price color
}
}
} #else
if( $saal_tickets = $db -> getTickets( $show_id ) ) {
$bron = $db -> getBronTickets( $show_id );
for ( $i = 0; $i < count ( $bron ); $i++ ){
$bufstr = unserialize($bron[$i][1]);
for ($k = 0; $k < count ( $bufstr ); $k++){
$c = count($bron_tickets);
$bron_tickets[$c][0] = $bron[$i][0];
$bron_tickets[$c][1] = $bufstr[$k]['x'];
$bron_tickets[$c][2] = $bufstr[$k]['y'];
}
}
$bronn = $db -> getNewBronTickets( $show_id );
if ( count($bronn) > 0 ){
for ( $j = 0; $j < count ( $bronn ); $j++ ){
$bronnew = unserialize($bronn[$j]['orders']);
for ( $i = 0; $i < count ( $bronnew ); $i++ ){
$qar = array();
$count = count($bron_tickets);
$oldbronformat = $db->getBronFromTickets($bronn[$j]['show_id'], $bronnew[$i]['block'], $bronnew[$i]['row'], $bronnew[$i]['place']);
$qar = unserialize($oldbronformat);
for( $q=0; $q < count($qar); $q++ ){
if ( $qar[$q][($bronnew[$i]['row']-1)] == $bronnew[$i]['place'] ){
$res = $q;
}
}
$bron_tickets[$count][0] = $bronnew[$i]['block'];
$bron_tickets[$count][2] = ($bronnew[$i]['row']) - 1;
$bron_tickets[$count][1] = @$res;
}
}
}
for ( $i = 0; $i < count ( $saal_tickets ); $i++ ){
$places = explode(';', trim($saal_tickets[$i]['places'], ';'));
foreach ($places as $place){
if ( '' == $place ) continue;
$xy = explode(',', $place);
if ( !isset($xy[0]) || !isset($xy[1]) ) continue;
$at = count( $all_tickets );
$all_tickets[$at][0] = $saal_tickets[$i][0];
$all_tickets[$at][1] = $xy[0];
$all_tickets[$at][2] = $xy[1];
$all_tickets[$at][3] = $saal_tickets[$i][2];
$all_tickets[$at][4] = $saal_tickets[$i][3]; // sector id
}
if ( @count($colorprice) == 0 ){
$colorprice[0]['color'] = 1;
$colorprice[0]['price'] = $saal_tickets[$i][2];
}
else{
$identity = false;
for ( $j = 0; $j < count ( $colorprice ); $j++ ){
if ( $colorprice[$j]['price'] == $saal_tickets[$i][2] )
$identity = true;
}
if ( !$identity ){
$cc = count ( $colorprice );
$colorprice[$cc]['color'] = $colorprice[($cc - 1)]['color'] + 1;
$colorprice[$cc]['price'] = $saal_tickets[$i][2];
}
}
}
//-------------------------------------------------
// Creating array with coordinates & prices
//-------------------------------------------------
for ( $i = 0; $i < count ( $all_tickets ); $i++ ){
$identity = false;
for ( $j = 0; $j < count ( $bron_tickets ); $j++ ){
if ( ( strtolower($bron_tickets[$j][0]) == strtolower($all_tickets[$i][0]) ) and ( strtolower($bron_tickets[$j][1]) == strtolower($all_tickets[$i][1]) ) and ( strtolower($bron_tickets[$j][2]) == strtolower($all_tickets[$i][2]) ) ){
$identity = true;
}
}
if ( !$identity ){
$c = count( $free_tickets );
$free_tickets[$c][0] = $all_tickets[$i][0];
$free_tickets[$c][1] = $all_tickets[$i][1] + 1;
$free_tickets[$c][2] = $all_tickets[$i][2] + 1;
$free_tickets[$c][3] = $all_tickets[$i][3];
$free_tickets[$c][4] = 0;
$free_tickets[$c][5] = $all_tickets[$i][4];
}
}
//-------------------------------------------------
for ( $i = 0; $i < count ( $free_tickets ); $i++ ){
for ( $n = 0; $n < count ( $colorprice ); $n++ ){
if ( $free_tickets[$i][3] == $colorprice[$n]['price'] ){
$free_tickets[$i][4] = $colorprice[$n]['color'];
}
}
}
$sp = array();
for ( $i = 0; $i < count ( $free_tickets ); $i++ ){
//-------------------------------------------------
// Замена номера места и ряда на "корректые"
//-------------------------------------------------
$newxyarray = $db -> getNewXY($free_tickets[$i][5],$free_tickets[$i][1],$free_tickets[$i][2]);
$x1 = $free_tickets[$i][1] - 1;
$y1 = $free_tickets[$i][2] - 1;
if (@$debug) {echo '<small>'.$free_tickets[$i][0].' - '.$free_tickets[$i][2].' | '.($newxyarray[$x1][$y1]).', </small>';}
$free_tickets[$i][1] = $newxyarray[$x1][$y1];
}
//-------------------------------------------------
// Creating final array with coordinates & prices
//-------------------------------------------------
for ( $i = 0; $i < count ( $saal_coords ); $i = $i + 6 ){
# FOR CONSTRUCTOR SAAL (ALL COORDS)
$cs = @count( $cs_coords );
#$cs_coords[$cs]['block'] = $saal_coords[$i][0]; // 'parkett links'
#$cs_coords[$cs]['place'] = $saal_coords[($i+2)][2]; // 'x' place
#$cs_coords[$cs]['row'] = $saal_coords[($i+1)][1]; // 'y' row
$cs_coords[$cs]['x'] = $saal_coords[($i+3)][3]; // X coord
$cs_coords[$cs]['y'] = $saal_coords[($i+4)][4]; // Y coord
// define hall width and height for newest plan generator
if( ($cs_coords[$cs]['x'] * 1) > ($saal_max_x * 1) ) $saal_max_x = $cs_coords[$cs]['x'] * 1;
if( ($cs_coords[$cs]['y'] * 1) > ($saal_max_y * 1) ) $saal_max_y = $cs_coords[$cs]['y'] * 1;
for ( $j = 0; $j < count ( $free_tickets ); $j++ ){
if ( ( strtolower( @$saal_coords[$i][0] ) == strtolower( @$free_tickets[$j][0] ) ) && ( strtolower( $saal_coords[($i+1)][1] ) == strtolower( $free_tickets[$j][2] ) ) && ( strtolower( $saal_coords[($i+2)][2] ) == strtolower( $free_tickets[$j][1] ) ) ){
$c = count( $coords );
$coords[$c]['block'] = $saal_coords[$i][0]; // 'parkett links'
$coords[$c]['place'] = $saal_coords[($i+2)][2]; // 'x' place
$coords[$c]['row'] = $saal_coords[($i+1)][1]; // 'y' row
$coords[$c]['x'] = $saal_coords[($i+3)][3]; // X coord
$coords[$c]['y'] = $saal_coords[($i+4)][4]; // Y coord
$coords[$c]['price'] = $free_tickets[$j][3]; // ticket's price
$coords[$c]['color'] = $free_tickets[$j][4]; // price color
}
}
}
}
}
// create a blank image
$hall_width = $saal_max_x * 1 + 500;
$hall_height = $saal_max_y * 1 + 500;
$image = imagecreate($hall_width,$hall_height);
// background color (for Hall background)
$bg = imagecolorallocate($image, 244, 244, 244);
// black color (for Buehne)
$color_black = imagecolorallocate($image, 0, 0, 0);
// black color (for Buehne)
$color_white = imagecolorallocate($image, 255, 255, 255);
// gray color (for inactive places)
$color_gray = imagecolorallocate($image, 187, 187, 187);
// draw all places in the Hall
foreach( $cs_coords as $key=>$val ) {
$x = $cs_coords[$key]["x"];
$y = $cs_coords[$key]["y"];
// draw all places in the Hall
imagefilledellipse($image,$x,$y,10,10,$color_gray);
}
// draw FREE TO ORDER places in the Hall
$color_places = array();
$color_places[] = array( "r"=>76, "g"=>255, "b"=>255 );
$color_places[] = array( "r"=>218, "g"=>255, "b"=>76 );
$color_places[] = array( "r"=>255, "g"=>0, "b"=>255 );
$color_places[] = array( "r"=>255, "g"=>106, "b"=>0 );
$color_places[] = array( "r"=>0, "g"=>255, "b"=>0 );
$color_places[] = array( "r"=>0, "g"=>0, "b"=>255 );
$color_places[] = array( "r"=>254, "g"=>254, "b"=>0 );
$color_places[] = array( "r"=>178, "g"=>0, "b"=>255 );
$color_places[] = array( "r"=>217, "g"=>174, "b"=>0 );
$color_places[] = array( "r"=>51, "g"=>0, "b"=>204 );
$color_places[] = array( "r"=>236, "g"=>0, "b"=>205 );
foreach( $coords as $key=>$val ) {
$x = $coords[$key]["x"];
$y = $coords[$key]["y"];
#echo '.'.$color_places[($coords[$key]["color"]*1-1)]["r"];
$place_color = imagecolorallocate($image, $color_places[($coords[$key]["color"]*1-1)]["r"], $color_places[($coords[$key]["color"]*1-1)]["g"], $color_places[($coords[$key]["color"]*1-1)]["b"]);
// draw all places
if ( $_GET["type"] == 'full' ) imagefilledellipse($image,$x,$y,10,10,$place_color);
else if( $_GET["type"] == 'mini' ) imagefilledellipse($image,$x,$y,20,20,$place_color);
}
// draw the Buehne
$x0 = $cs_buhne["x0"];
$y0 = $cs_buhne["y0"];
$x1 = $cs_buhne["x0"] * 1 + $cs_buhne["w"];
$y1 = $cs_buhne["y0"] * 1 + $cs_buhne["h"];
imagefilledrectangle($image,$x0,$y0,$x1,$y1,$color_black);
// write test to Buehne
$buehne1 = 'Bьhne';
#$buehne2 = 'Сцена';
#$font = 'arial.ttf';
$font = 'tahomabd.ttf';
// calc font size
$fontsize = ($y1-$y0)/3;
// calc positions
$b_center_x_1 = ceil( $x0 + $cs_buhne["w"] / 2 - $fontsize*2 );
$b_center_y_1 = ceil( $y0 + $cs_buhne["h"] / 2 + $fontsize/2 );
#$b_center_x_2 = ceil( $x0 + $cs_buhne["w"] / 2 - 60 );
#$b_center_y_2 = ceil( $cs_buhne["h"] / 2 + $fontsize*1.5 );
imagettftext($image, $fontsize, 0, $b_center_x_1, $b_center_y_1, $color_white, $font, $buehne1);
#imagettftext($image, $fontsize, 0, $b_center_x_2, $b_center_y_2, $color_white, $font, $buehne2);
// write labels
for( $i = 1; $i < count($labels); $i++){
$text = $labels[$i][2];
if($labels[$i][0]=='block') { // if it's block's label
if($labels[$i][5]==0) { // 0 deg.
$x = $labels[$i][3] * 1 - 30;
$y = $labels[$i][4] * 1;
} else {
if( $labels[$i][5]<0 && $labels[$i][5]>-45 && $labels[$i][5]!=-45 && $labels[$i][5]!=-90 ) { // -1 .. -44 deg.
$x = $labels[$i][3] * 1 - 30;
$y = $labels[$i][4] * 1 + 10;
} else if( $labels[$i][5]>0 && $labels[$i][5]<45 && $labels[$i][5]!=45 && $labels[$i][5]!=90) { // +1 .. +44 deg.
$x = $labels[$i][3] * 1 - 20;
$y = $labels[$i][4] * 1 - 20;
}
else if( $labels[$i][5]<-45 && $labels[$i][5]>-90 && $labels[$i][5]!=-45 && $labels[$i][5]!=-90 ) { // -46 .. -89 deg.
$x = $labels[$i][3] * 1 - 20;
$y = $labels[$i][4] * 1 + 15;
} else if( $labels[$i][5]>45 && $labels[$i][5]<90 && $labels[$i][5]!=45 && $labels[$i][5]!=90) { // +46 .. +89 deg.
$x = $labels[$i][3] * 1 - 20;
$y = $labels[$i][4] * 1 - 25;
}
else if( $labels[$i][5]==45 ) { // +45 deg.
$x = $labels[$i][3] * 1 - 25;
$y = $labels[$i][4] * 1 - 20;
} else if( $labels[$i][5]==-45 ) { // -45 deg.
$x = $labels[$i][3] * 1 - 20;
$y = $labels[$i][4] * 1 + 20;
}
else if( $labels[$i][5]==-90 ) { // -90 deg.
$x = $labels[$i][3] * 1;
$y = $labels[$i][4] * 1 + 30;
} else if( $labels[$i][5]==90 ) { // +90 deg.
$x = $labels[$i][3] * 1 - 10;
$y = $labels[$i][4] * 1 - 35;
}
}
} else { // not block
if($labels[$i][5]==0) { // 0 deg.
$x = $labels[$i][3] * 1 - 7;
$y = $labels[$i][4] * 1 - 2;
} else {
if($labels[$i][5]<0) {
$x = $labels[$i][3] * 1; // - deg.
$y = $labels[$i][4] * 1;
} else if($labels[$i][5]>0) { // + deg.
$x = $labels[$i][3] * 1 - 7;
$y = $labels[$i][4] * 1 - 6;
}
}
}
/*if($labels[$i][0]=='block' && $labels[$i][5]!=0)
$x = $labels[$i][3] * 1 + 23;
else
$x = $labels[$i][3] * 1 - 7;
$y = $labels[$i][4] * 1 - 6;*/
#if( $labels[$i][5]==0 ) $angle = 0; // 0 degrees
#if( $labels[$i][5]==90 ) $angle = -90; // 0 degrees
$angle = ($labels[$i][5]!=0) ? ((-1)*$labels[$i][5]) : 0;
#$font_size = (isset($labels[$i][6])) ? ($labels[$i][6]-4) : 6;
if( isset($labels[$i][6]) && $labels[$i][6] != 0 ) {
if( $labels[$i][6] > 12 ) $font_size = $labels[$i][6]-5;
else if( $labels[$i][6] > 8 && $labels[$i][6] <= 12 ) $font_size = $labels[$i][6]-3;
else $font_size = 6;
} else $font_size = 6;
imagettftext($image, $font_size, $angle, $x, $y, $color_black, $font, $text);
}
}
if( isset( $_GET["type"] ) && $_GET["type"] == 'full') {
// output the picture
header("Content-type: image/png") ;
imagepng($image);
imagedestroy($image);
}
else if( $_GET["type"] == 'mini' ) {
// Resize the original image
$filename = $_SERVER['DOCUMENT_ROOT'].'/files/images/constructor_thumb.png';
imagepng($image,$filename);
$imageResized = imagecreate(200,200);
$imageTmp = imagecreatefrompng($filename);
imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, 200, 200, $hall_width, $hall_height);
// output the picture
header("Content-type: image/png") ;
imagepng($imageResized);
imagedestroy($imageResized);
imagedestroy($image);
unlink($filename);
}
?>
Спустя 2 часа, 38 минут, 29 секунд (21.06.2012 - 05:39) twin написал(а):
Бросается в глаза то, что картинка генерится налету, при выдаче информации. А должна просто записываться файлом на сервер в момент изменения информации. Это сродни кэшированию.
Естественно такой тяжелый скрипт с кучей циклов и GD будет тормозить неподецки.
Естественно такой тяжелый скрипт с кучей циклов и GD будет тормозить неподецки.
Спустя 3 часа, 10 минут, 49 секунд (21.06.2012 - 08:50) madfun написал(а):
Спасибо за совет, в перспективе так и планирую сделать, но вышло так, что надо сделать нормальную работу очень быстро, партнеры(организаторы концерта) вообще не дают времени. Может как-то получится хотя бы немного ускорить работу? Может какие-то настройки сервера изменить?
Спустя 8 минут, 52 секунды (21.06.2012 - 08:58) madfun написал(а):
Если просто сделать таблицу с заказами почти пустую, то картинка выкидывается моментально. Заюбыл отписать, может будет полезно

Спустя 48 минут, 38 секунд (21.06.2012 - 09:47) vagrand написал(а):
Можно прямо в ваш скрипт добавить кеширование в файл по входным параметрам. И при каждом запуске проверять есть ли уже файл с такими входными параметрами.
Спустя 1 час, 4 минуты, 58 секунд (21.06.2012 - 10:52) vital написал(а):
$c = count($bron_tickets);
стоит повыносить из циклов везде..
стоит повыносить из циклов везде..
Спустя 2 часа, 27 минут, 51 секунда (21.06.2012 - 13:20) twin написал(а):
Цитата (madfun @ 21.06.2012 - 05:50) |
Спасибо за совет, в перспективе так и планирую сделать, но вышло так, что надо сделать нормальную работу очень быстро, партнеры(организаторы концерта) вообще не дают времени. Может как-то получится хотя бы немного ускорить работу? Может какие-то настройки сервера изменить? |
На самом деле там работы на полчаса. Другого пути нет, этот скрипт не выйдет сколь-либо заметно оптимизировать.
vagrand
Цитата |
Можно прямо в ваш скрипт добавить кеширование в файл по входным параметрам. И при каждом запуске проверять есть ли уже файл с такими входными параметрами. |
Не выйдет так просто. Дело в том, что файл закэшируется браузером и толку не будет. Нужно обязательно добавлять к пути до файла GET - параметр и изменять его при модификации файла.
Спустя 11 минут, 13 секунд (21.06.2012 - 13:31) medvedeva написал(а):
Может быть генерить по крону раз в 5-15 минут, а в промежутках отдавать сгенерённую картинку.
Спустя 1 час, 35 минут, 24 секунды (21.06.2012 - 15:06) vagrand написал(а):
twin
Цитата |
Не выйдет так просто. Дело в том, что файл закэшируется браузером и толку не будет. Нужно обязательно добавлять к пути до файла GET - параметр и изменять его при модификации файла. |
Ну когда я писал про входные параметры я как раз и подразумевал get параметры, которые передаются скрипту, ну а если они передаются не через get, то что бы браузер не кешировал можно сделать так:
<img src='script.php?rand=<?=rand(1,100000000);?>'>
И все будет нормально.
Спустя 3 минуты, 38 секунд (21.06.2012 - 15:10) madfun написал(а):
Вобщем проблема выходит чисто в этом цикле, в зале 3000 мест, и получается он проверяет 3000 занятых, выходит 9кк проходов. Эммм, можно здесь, что-то сделать чтобы ускорить его?
foreach($saal_new_tickets as $key1=>$val1){
$identity = false;
foreach($bron_tickets as $key2=>$val2){
$bron_price = sprintf("%.2f",$bron_tickets[$key2][3]);
$saal_new_tickets_price = sprintf("%.2f",$saal_new_tickets[$key1][5]);
#echo ($bron_tickets[$key2][2]);
#echo ' - ';
#echo ($saal_new_tickets[$key1][2]);
#echo '<br>';
if ( ( (strtolower($bron_tickets[$key2][0])) == (strtolower($saal_new_tickets[$key1][0])) ) && ( strtolower($bron_tickets[$key2][1]) == strtolower($saal_new_tickets[$key1][1]) ) && ( strtolower($bron_tickets[$key2][2]) == strtolower($saal_new_tickets[$key1][2]) ) ){
$identity = true;
#echo $saal_new_tickets[$key1][0].'<br>';
}
}
if ( !$identity ){
for ( $n = 0; $n < count ( $colorprice ); $n++ ){
$saal_new_tickets_pr = sprintf("%.2f",$saal_new_tickets[$key1][5]);
if ( $saal_new_tickets_pr == $colorprice[$n]['price'] ){
$saal_new_tickets[$key1][6] = $colorprice[$n]['color'];
}
}
$c = count( $coords );
$coords[$c]['block'] = $saal_new_tickets[$key1][0]; // 'parkett links'
$coords[$c]['place'] = $saal_new_tickets[$key1][2]; // 'x' place
$coords[$c]['row'] = $saal_new_tickets[$key1][1]; // 'y' row
$coords[$c]['x'] = $saal_new_tickets[$key1][3]; // X coord
$coords[$c]['y'] = $saal_new_tickets[$key1][4]; // Y coord
$coords[$c]['price'] = $saal_new_tickets[$key1][5]; // ticket's price
$coords[$c]['color'] = $saal_new_tickets[$key1][6]; // price color
}
}
Спустя 16 дней, 8 часов, 25 минут, 59 секунд (7.07.2012 - 23:36) Guest написал(а):
Вдруг кому-то пригодится, тормозили ооооочень сильно эти строки
$bron_price = sprintf("%.2f",$bron_tickets[$key2][3]);
$saal_new_tickets_price = sprintf("%.2f",$saal_new_tickets[$key1][5]);