Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 4
1

Подскажите как отсортировать два массива для графика

19.05.2016, 20:37. Показов 567. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток,

Задача была такая: ввести количество баллов юзера за месяц в графике. Выбор пал на google charts:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['line']});
      google.charts.setOnLoadCallback(drawChart);
 
    function drawChart() {
 
      var data = new google.visualization.DataTable();
      data.addColumn('number', 'Day');
      data.addColumn('number', 'Points');
      data.addRows([
 
//тут выглядит так [1день,100баллы]
 
      ]);
 
      var options = {
        chart: {
          title: '',
          subtitle: ''
        },
        width: 600,
        height: 600,
        axes: {
          x: {
            0: {side: 'top'}
          }
        }
      };
 
      var chart = new google.charts.Line(document.getElementById('line_top_x'));
 
      chart.draw(data, options);
    }
  </script>
Получилось вывести количество баллов и даты, так же сформировать пустые значения. вышло два массива. Но при обьединении значение балов присваеваться в конец, а не по порядку. Кто может помогите.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
defined('_JEXEC') or die;
$user = JFactory::getUser();
$database = JFactory::getDbo();
 
//Выборка по таблици по сегоднешнему месяцу
$q = "SELECT * FROM #__community_profile_stats WHERE uid='$user->id' AND MONTH(`date`) = MONTH(NOW()) AND YEAR(`date`) = YEAR(NOW())";
$database -> setQuery($q);
$list = $database -> loadObjectList();
$out_user_points = '';
$out_user_days = '';
$points_and_day = '';
foreach($list as $points){
    $type = $points->type;
    $count = $points->count;
    $created_at = $points->created_at;
    //Формирую дату по стандарту 13/05/2016
    $date_out = preg_replace("|(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}).*|","\\3/\\2/\\1",$created_at);      
        if ($type == "points"){
            //Значение баллов
            $i = 0;
            $array = array($count);
            //Разбиваю дату
            $getdate = explode ("/",$date_out);
            $day = $getdate[0];
            $month = $getdate[1];
            $year = $getdate[2];
            $all .= '['.$day.','.$array[$i++].'],/';
            $x = 0;
            $y = 0;
            $user_points = array($count);
            $user_days = array($day);
            $out_user_points .= $user_points[$x++].'/';
            $out_user_days .= $user_days[$y++].'/'; 
        }
}
 
$arr = explode("/", $out_user_points); 
$arr2 = explode("/", $out_user_days);
$day_row = '';  
            //Формируем количество дней в месяце
            $a = 31;
            $b = 30;
            $c = 28;
            if ($month == 01 || $month == 03 || $month == 05 || $month == 07 || $month == 08 || $month == 10 || $month == 12 ) {
                for ($j = 0; $j <= $a; $j++) {
                    $day_row .= $j.'/'; 
                }
            } else if ($month == 04 || $month == 06 || $month == 09 || $month == 11) {
                $j = $b;
            } else if ($month == 02) {
                $j = $c;
            } else {
                echo 'Ошибка с выборкой месяца';
            }
$arr3 = explode("/", $day_row);
$result = array_diff($arr3, $arr2);
foreach ($result as $key => $val) {
    echo  $key.'Ключ массива - ['.$val.',0],<br>';
}
$d = 0;
foreach ($arr2 as $key => $val) {
    $key = $val;
    $val = $arr[$d++];
    echo $key.' Ключ массива - ['.$key.','.$val.'],<br>';
}
 
?>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['line']});
      google.charts.setOnLoadCallback(drawChart);
 
    function drawChart() {
 
      var data = new google.visualization.DataTable();
      data.addColumn('number', 'Day');
      data.addColumn('number', 'Points');
      data.addRows([
//тут выглядит так [1день,100очки]
 
      ]);
 
      var options = {
        chart: {
          title: '',
          subtitle: ''
        },
        width: 600,
        height: 600,
        axes: {
          x: {
            0: {side: 'top'}
          }
        }
      };
 
      var chart = new google.charts.Line(document.getElementById('line_top_x'));
 
      chart.draw(data, options);
    }
  </script>
  <div id="line_top_x"></div>
Результат такой:

0Ключ массива - [0,0],
1Ключ массива - [1,0],
2Ключ массива - [2,0],
3Ключ массива - [3,0],
4Ключ массива - [4,0],
5Ключ массива - [5,0],
6Ключ массива - [6,0],
7Ключ массива - [7,0],
8Ключ массива - [8,0],
9Ключ массива - [9,0],
14Ключ массива - [14,0],
16Ключ массива - [16,0],
17Ключ массива - [17,0],
18Ключ массива - [18,0],
19Ключ массива - [19,0],
20Ключ массива - [20,0],
21Ключ массива - [21,0],
22Ключ массива - [22,0],
23Ключ массива - [23,0],
24Ключ массива - [24,0],
25Ключ массива - [25,0],
26Ключ массива - [26,0],
27Ключ массива - [27,0],
28Ключ массива - [28,0],
29Ключ массива - [29,0],
30Ключ массива - [30,0],
31Ключ массива - [31,0],


10 Ключ массива - [10,32],
11 Ключ массива - [11,2],
12 Ключ массива - [12,10],
13 Ключ массива - [13,500],
15 Ключ массива - [15,500],
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2016, 20:37
Ответы с готовыми решениями:

Народ подскажите пожалюйста как собрать два массива в один
Множество всех значений, имеющихся в массивах в1,в2,..Вп; C1, C2,.Cm, без повторения значния. ...

Подскажите как вывести два массива рядом, а не под друг другом
У меня есть две функции, которые выводят два массива. Подскажите как мне сделать так, чтоб они...

Отсортировать два массива так, что бы первые 14 элементов 1 массива были в порядке возрастания
Доброго времени суток! Хочу отсортировать два массива так, что бы первые 14 элементов 1 массива...

Отсортировать два массива
Дело в том что первую половину введенных элементов он сортирует, а остальную не хочет. Здесь...

2
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
21.05.2016, 09:26 2
Цитата Сообщение от wytcorp Посмотреть сообщение
не по порядку
Цитата Сообщение от wytcorp Посмотреть сообщение
Результат такой:
Код
0Ключ массива - [0,0],
1Ключ массива - [1,0],
2Ключ массива - [2,0],
3Ключ массива - [3,0],
4Ключ массива - [4,0],
Я не очень силен в математике, но по-моему 0, 1, 2, 3, 4 - это и есть "по порядку".
0
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 4
21.05.2016, 10:39  [ТС] 3
Спасибо, я уже решил эту задачу.
0
21.05.2016, 10:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2016, 10:39
Помогаю со студенческими работами здесь

Отсортировать два массива
Есть два массива int и string . Значение с первого соответствуют значению второго. 567-...

Подскажите как задать два условия для DoCmd.OpenForm
Необходимо открыть форму с фильтром на два условия: поле =Код1 и поле =Код2 С одним условием...

Объединить два массива в третий и отсортировать его
У нас есть два отсортированных массива, мы создали цикл, объединили в нем эти два массива, и теперь...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru