с текстового файла в масcивы

12
G
На сайте с 23.01.2012
Offline
0
1063

Помогите чайнику разобраться. есть файл data.txt. данные в 4 столбцах

01.01.2009^^3.998^^3.427^^1.165

02.01.2009^^2.110^^3.427^^1.166

03.01.2009^^1.487^^3.427^^2.366

....

нужно эти данные запихнуть в масcивы код на javascripts по которым строим графики

var kot = [ { label: "1", color: "#0", data: [["2008/01/01",3.222 ], ["2008/02/01",3.455]....["2012/01/01",1.455]]},

{ label: "2", color: "#0", data: [["2008/01/01",1.542 ], ["2008/02/01",2.467]....["2012/01/01",2.665]]},

{ label: "3", color: "#0", data: [["2008/01/01",1.902 ], ["2008/02/01",3.100]....["2012/01/01",1.885]]} ];

Очень нужно...

AH
На сайте с 17.12.2011
Offline
1
#1

Ну для начала, вот.

Как строится график, я не знаю, значения даты уж подставляйте как Вам угодно.

<?php

$file = file( "data.txt" );
$js_array = Array();

foreach( $file as $line => $data )
{
$line++;
// Получаем дату, и три значения
list( $date, $var1, $var2, $var3) = explode( "^^", $data );

$var3 = ( float ) $var3;

// Строим массив
$js_array[] = '{label: "'.$line.'", color: "#0", data: [["2008/01/01", '.$var1.'], ["2008/02/01",'.$var2.']....["2012/01/01",'.$var3.']]}';
}

$js = "var kot = [\n" . implode("," . PHP_EOL, $js_array). "\n];";

print $js;

?>
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#2

Вместо:

$file = file( "data.txt" );

Нужно написать:

$file = file( "data.txt" ,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
G
На сайте с 23.01.2012
Offline
0
#3

что-то не то.... label 1,2,3 это три линии. Каждая линия берет координаты с массива var kot=[]

каждая точка имеет координаты [дата1(ось х), значение1 (ось y) и так далее] Спасибо, но нужно чтобы по такому принципу было...

как то циклом подставлять или как...

G
На сайте с 23.01.2012
Offline
0
#4

ну так кто подскажет, как создать массив

[ дата1 знач1_1 знач2_1 знач3_1

дата2 знач1_2 знач2_2 знач3_2

дата3 знач1_3 знач2_3 знач3_3

дата4 знач1_4 знач2_4 знач3_4 и тд]

palladin_jedi
На сайте с 13.07.2010
Offline
71
#5
grenlio:
ну так кто подскажет, как создать массив

http://phpfaq.ru/na_tanke

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
beginerx
На сайте с 13.07.2009
Offline
173
#6

умник какой-то минусовал, гы-гы, не читал видимо вообще ничего, не знает про джиквери-аякс-вебсокет-хтмл5 :) думает что из клиенсткого аваскрипт нельзя текстовый файл с сайта скачать в переменную в скрипте или в лоакльное хранилище хтмл5 :)

>>>Скорость и Реакция<<< (https://vk.com/app4629907 ): онлайн тренировка скорости и времени реакции.... (https://vk.com/app4612117 )... (https://vk.com/club18740762 ).
G
На сайте с 23.01.2012
Offline
0
#7

Я не программист и языка PHP вообще не знаю , но знаю где есть учебники и сам.

Я спрашиваю, потому что думал помогут найти решение. Не все такие умные.

я должен разбираться там, где мне обязательно нужно знать, что и как...

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#8
grenlio:
Я не программист и языка PHP вообще не знаю , но знаю где есть учебники и сам.
Я спрашиваю, потому что думал помогут найти решение. Не все такие умные.
я должен разбираться там, где мне обязательно нужно знать, что и как...

Мы тут помогаем и поправляем ошибки, а НЕ пишем ЗА вас. Если разницу не видите, то что мы можем с этим делать.

G
На сайте с 23.01.2012
Offline
0
#9

ну так исправте ошибку...пожалуйста

<?php

$array_from_file = file("data.txt");;

$output_array = array();

$json = "";

$color = "#0";

foreach ($array_from_file as $key => $value)

{

$str_to_array = explode("^^", $value);

$date = preg_replace('/(\d{2})\.(\d{2})\.(\d{4})/', '\3/\2/\1', $str_to_array[0]);

$obj = new stdClass();

$obj->label = $key+1;

$obj->color = $color;

for ($j = 0; $j < count($array_from_file); $j++)

$obj->data = array(array($date, implode(","(float)$str_to_array[1][$j])), array($date, implode(","(float)$str_to_array[2][$j])), array($date, implode(","(float)$str_to_array[3][$j])));

$output_array[] = $obj;

}

$json = json_encode($output_array);

print $json;

?>

<script>

var kot = <?php echo $output_json; ?>;

alert(kot[0].color);

</script>

Parse error: syntax error, unexpected T_DOUBLE_CAST

siv1987
На сайте с 02.04.2009
Offline
427
#10
grenlio:
ну так исправте ошибку

Что исправлять? Где ошибка и где конкретный пример на выходе?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий