5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
1

Перебор элементов массива

21.04.2015, 13:38. Показов 2479. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Помогите с циклом.
есть массив:
Кликните здесь для просмотра всего текста
PHP
1
array(2) { ["f_name"]=> string(2) "c1" ["Title"]=> string(97) "Отсутствие представления/идентификации/верификации" } array(2) { ["f_name"]=> string(3) "с2" ["Title"]=> string(74) "Предоставление некорректной информации" } array(2) { ["f_name"]=> string(3) "с3" ["Title"]=> string(35) "Нарушение процесса" } array(2) { ["f_name"]=> string(3) "с4" ["Title"]=> string(59) "Некорректно рассчитана сумма ПЗ" } array(2) { ["f_name"]=> string(3) "с5" ["Title"]=> string(49) "Некорректная аргументация" } array(2) { ["f_name"]=> string(3) "с6" ["Title"]=> string(45) "Некорректная работа с ПО" } array(2) { ["f_name"]=> string(3) "с7" ["Title"]=> string(35) "Затянутый разговор" } array(2) { ["f_name"]=> string(3) "с8" ["Title"]=> string(76) "Разглашение конфиденциальной информации" } array(2) { ["f_name"]=> string(3) "с9" ["Title"]=> string(44) "Неделовой стиль общения" } array(2) { ["f_name"]=> string(4) "с10" ["Title"]=> string(94) "Фамильярное отношение. Оскорбление. Повышенный тон" } array(2) { ["f_name"]=> string(4) "с11" ["Title"]=> string(47) "Отсутствие работы с ложью" } array(2) { ["f_name"]=> string(4) "с12" ["Title"]=> string(84) "Умение работать с негативом от клиентов (3 лиц)" } array(2) { ["f_name"]=> string(4) "с13" ["Title"]=> string(67) "(Клиент) Применение техник мотивации" } array(2) { ["f_name"]=> string(4) "с14" ["Title"]=> string(84) "(Клиент) Предложены варианты решения проблемы" } array(2) { ["f_name"]=> string(4) "с15" ["Title"]=> string(56) "(Клиент) Уместная аргументация" } array(2) { ["f_name"]=> string(4) "с16" ["Title"]=> string(61) "(Клиент) Четкое подведение итогов" } array(2) { ["f_name"]=> string(4) "с17" ["Title"]=> string(40) "(3 лицо) Розыск клиента" } array(2) { ["f_name"]=> string(4) "с18" ["Title"]=> string(59) "(3 лицо) Предоставление номера АБ" } array(2) { ["f_name"]=> string(4) "с19" ["Title"]=> string(51) "(3 лицо) Проработка 3-ого лица" } array(2) { ["f_name"]=> string(4) "с20" ["Title"]=> string(38) "Сброс. Фальсификация" } array(2) { ["f_name"]=> string(4) "с21" ["Title"]=> string(60) "Временно отслеживаемые критерии" }

мне нужно запихать "Title" в массив, чтобы ключом были 0,1,2 и пр, чтобы его потом в for'e перебирать и выводить соответствующий Title.
Кликните здесь для просмотра всего текста
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
<?php
//формируем график
$conn = &ADONewConnection('mysql'); # создаем соединение
$conn->Connect('localhost','uvpz','uvpz','uvpz');   # соединяемся с mysql
$conn->SetCharSet('utf8');
$conn->SetFetchMode(ADODB_FETCH_ASSOC);
//берем запрос из основного
$recordSet = &$conn->Execute($sql);
 
// Формируем граф в цикле
for($i=1; $i<22; $i++)
                {
//Формируем график
        foreach($recordSet as $key=>$data) {
 
        //$Smena_g[] =substr($data['Name'],0,20);
        $Smena_g[] = substr($data['Name'], 0, strpos($data['Name'], ' ' )); 
        $data_g[] = $data["c$i"];
        
        };
//расшифровка критериев !!! Тут не получается
 
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) {
    
    $list = $row4['Title'];
    echo $list,'</br>';
    //echo var_dump($row4);
        }
        
// Setup the graph.
$graph = new Graph(500,250);
$graph->img->SetMargin(40,20,25,120);
$graph->SetScale("textlin");
$graph->SetMarginColor("lightblue:1.1");
$graph->SetShadow();
 
// Set up the title for the graph
$graph->title->Set("c$i");                        //тут в 1 итерации должен выводится 0 элемент масива, т.е Отсутствие представления/идентификации/верификации
$graph->title->SetMargin(8);
$graph->title->SetFont(FF_VERDANA,FS_BOLD,12);
$graph->title->SetColor("darkred");
 
// Setup font for axis
$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
 
// Show 0 label on Y-axis (default is not to show)
$graph->yscale->ticks->SupressZeroLabel(false);
 
// Setup X-axis labels
$graph->xaxis->SetTickLabels($Smena_g);
$graph->xaxis->SetLabelAngle(90);
 
// Create the bar pot
$bplot = new BarPlot($data_g);
$bplot->SetWidth(0.6);
 
// Setup color for gradient fill style
$bplot->SetFillGradient("navy:0.9","navy:1.85",GRAD_LEFT_REFLECTION);
 
// Set color for the frame of each bar
$bplot->SetColor("white");
$graph->Add($bplot);
 
// Finally send the graph to the browser
ob_start();
$graph->Stroke();
header('Content-type: text/html; charset=utf-8');
$image = 'data:image/png;base64,'.base64_encode(ob_get_clean());
?>
 
<!DOCTYPE html>
<html lang="ru">
    <head></head>
    <body>
        <img src="<?=$image?>" />
    </body>
</html>

Списком вывести могу, а вот в массив с цифровыми ключами не получается.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2015, 13:38
Ответы с готовыми решениями:

Перебор элементов массива без использования циклов
Здравствуйте, изучал эту тему, наткнулся на код function f_print($value, $key) { echo $key . '...

Перебор массива
Привет. Есть массив $user = array(); foreach($config as $form_id){ $user =...

Перебор массива
Здравствуйте, столкнулся с такой проблемой как перебор массива с помощью цикла Я пока что новичок...

Перебор массива
Всем привет, как можно получить из такого используя print_r($mass_time); Array ( =&gt; Array ...

12
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
21.04.2015, 14:12 2
Цитата Сообщение от Владимир23 Посмотреть сообщение
Списком вывести могу, а вот в массив с цифровыми ключами не получается.
PHP
1
2
3
4
<?php
$newArray[] = $array1['title'];
$newArray[] = $array2['title'];
...
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
21.04.2015, 14:51  [ТС] 3
Цитата Сообщение от pav1uxa Посмотреть сообщение
Код PHP
<?php
$newArray[] = $array1['title'];
$newArray[] = $array2['title'];
...
..не совсем понял.....
чем отличается от
PHP
1
$list = $row4['Title'];
я получаю в итоге список
Отсутствие представления/идентификации/верификации
Предоставление некорректной информации
Нарушение процесса
Некорректно рассчитана сумма ПЗ
Некорректная аргументация
Некорректная работа с ПО
Затянутый разговор
Разглашение конфиденциальной информации
Неделовой стиль общения
Фамильярное отношение. Оскорбление. Повышенный тон
Отсутствие работы с ложью
Умение работать с негативом от клиентов (3 лиц)
(Клиент) Применение техник мотивации
(Клиент) Предложены варианты решения проблемы
(Клиент) Уместная аргументация
(Клиент) Четкое подведение итогов
(3 лицо) Розыск клиента
(3 лицо) Предоставление номера АБ
(3 лицо) Проработка 3-ого лица
Сброс. Фальсификация
Временно отслеживаемые критерии
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
21.04.2015, 15:53 4
Цитата Сообщение от Владимир23 Посмотреть сообщение
..не совсем понял.....
чем отличается от
Мой вариант создает массив с ключами 0, 1, 2, и т.д. и значениями $array1['title']; $array2['title']; и т.д. В Вашем просто переменной $list присваивается значение $row4['Title']; Вот разница.
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
22.04.2015, 08:46  [ТС] 5
Цитата Сообщение от pav1uxa Посмотреть сообщение
Мой вариант создает массив с ключами 0, 1, 2, и т.д.
ниже получается то же самое? или я снова не прав?
PHP
1
2
3
4
5
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) {
    
    $q = $row4['Title'];
    echo $q[0];
            }
он выводит строку, но не в той кодировке видимо: ������������(((((((��
Пробовал перекодировать через iconv, но не могу понять в какой кодировке текст, хотя везде должен быть в utf-8.

Добавлено через 6 минут
...похоже хе..ю сморозил...

Добавлено через 41 минуту
Цитата Сообщение от pav1uxa Посмотреть сообщение
Вот разница.
Напишите, пожалуйста, как нужно......

Добавлено через 35 секунд
Отступление....
....или я тупой, или лыжи не едут....

Добавлено через 1 час 11 минут
Если выводить так:
PHP
1
2
3
4
5
6
7
8
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) {
    
    $list[] = $row4['Title'];
    foreach($list as $key=>$value) {
    echo "[$key] => ", $value, "<br>";
    
    }
        }
то получается список с ключами, но почему-то он выводит список с увеличением на каждой итерации, и только в последней показывает все строки:
Кликните здесь для просмотра всего текста
[0] => Отсутствие представления/идентификации/верификации
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[15] => (Клиент) Четкое подведение итогов
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[15] => (Клиент) Четкое подведение итогов
[16] => (3 лицо) Розыск клиента
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[15] => (Клиент) Четкое подведение итогов
[16] => (3 лицо) Розыск клиента
[17] => (3 лицо) Предоставление номера АБ
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[15] => (Клиент) Четкое подведение итогов
[16] => (3 лицо) Розыск клиента
[17] => (3 лицо) Предоставление номера АБ
[18] => (3 лицо) Проработка 3-ого лица
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[15] => (Клиент) Четкое подведение итогов
[16] => (3 лицо) Розыск клиента
[17] => (3 лицо) Предоставление номера АБ
[18] => (3 лицо) Проработка 3-ого лица
[19] => Сброс. Фальсификация
[0] => Отсутствие представления/идентификации/верификации
[1] => Предоставление некорректной информации
[2] => Нарушение процесса
[3] => Некорректно рассчитана сумма ПЗ
[4] => Некорректная аргументация
[5] => Некорректная работа с ПО
[6] => Затянутый разговор
[7] => Разглашение конфиденциальной информации
[8] => Неделовой стиль общения
[9] => Фамильярное отношение. Оскорбление. Повышенный тон
[10] => Отсутствие работы с ложью
[11] => Умение работать с негативом от клиентов (3 лиц)
[12] => (Клиент) Применение техник мотивации
[13] => (Клиент) Предложены варианты решения проблемы
[14] => (Клиент) Уместная аргументация
[15] => (Клиент) Четкое подведение итогов
[16] => (3 лицо) Розыск клиента
[17] => (3 лицо) Предоставление номера АБ
[18] => (3 лицо) Проработка 3-ого лица
[19] => Сброс. Фальсификация
[20] => Временно отслеживаемые критерии
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
22.04.2015, 12:19 6
Цитата Сообщение от Владимир23 Посмотреть сообщение
Если выводить так:
Ну так а зачем Вы сделали цикл в цикле?
PHP
1
2
3
4
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) 
     $list[] = $row4['Title'];
foreach($list as $key=>$value)
    echo "[{$key}] => [{$value}]<br>";
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
22.04.2015, 12:42  [ТС] 7
Цитата Сообщение от pav1uxa Посмотреть сообщение
Ну так а зачем Вы сделали цикл в цикле?
Код PHP
1
2
3
4
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC))
$list[] = $row4['Title'];
foreach($list as $key=>$value)
echo "[{$key}] => [{$value}]<br>";
у меня после этого куска идет вывод графика, и получается что перед каждым графиком выводятся все строки, а мне нужно на 1 итерации цикла формирования графика (код в 1 посте) выводить в название графика "Отсутствие представления/идентификации/верификации", т.е. 0 элемент получившегося цикла, и на след. итерациях соответственно 1,2,3 и т.д. Название нужно поместить в переменную и вывести тут
PHP
1
2
// Установите заголовок для графика
$graph->title->Set("c$i");
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
22.04.2015, 16:10 8
Цитата Сообщение от Владимир23 Посмотреть сообщение
у меня после этого куска идет вывод графика, и получается что перед каждым графиком выводятся все строки, а мне нужно на 1 итерации цикла формирования графика (код в 1 посте) выводить в название графика "Отсутствие представления/идентификации/верификации", т.е. 0 элемент получившегося цикла, и на след. итерациях соответственно 1,2,3 и т.д. Название нужно поместить в переменную и вывести тут
Я ничего не понял что Вы тут написали...

Ваш вариант будет выводить в первой итерации первое значение таблицы, во второй итерации - первое и второе, в третьей итерации - первое, второе и третье и так далее. Мой скрипт выводит по очереди все значения таблицы по одному разу. Определитесь что Вам нужно...
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
22.04.2015, 18:20  [ТС] 9
Ок. Мне нужно присвоить переменной значение i-того элемента массива. Т.е итогом Вашего цикла должна быть переменная,хранящаяся в себе первое значение таблицы,которое пойдёт на название графика(38 строка кода в 1посте - второй код).
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
22.04.2015, 19:16 10
Цитата Сообщение от Владимир23 Посмотреть сообщение
Ок. Мне нужно присвоить переменной значение i-того элемента массива. Т.е итогом Вашего цикла должна быть переменная,хранящаяся в себе первое значение таблицы,которое пойдёт на название графика(38 строка кода в 1посте - второй код).
Да что не понятного-то.
PHP
1
2
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) 
   $list[] = $row4['Title'];
После этого - $list[0] - Это первый элемент таблицы, $list[1] - второй и так далее. А там где у Вас 38 строка - там вообще никаких циклов нет...
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
22.04.2015, 19:41  [ТС] 11
Цитата Сообщение от pav1uxa Посмотреть сообщение
После этого - $list[0] - Это первый элемент таблицы, $list[1] - второй и так далее. А там где у Вас 38 строка - там вообще никаких циклов нет...
у меня в 11 строке начинается цикл по формированию графика(for), в 17,18 строках в переменные записываются данные, значения и фио сотрудника, и внутри цикла for, на первой его итерации мне нужно получить 1 значение переменной $list и вывести его в название графика - 34 строка:
PHP
1
2
// Set up the title for the graph
$graph->title->Set("$list");
Ваш цикл выводит все, что есть в переменно $list по 1 разу - согласен, а я хочу, чтобы на первой итерации цикла for, значение первого элемента $list было в 34 строке, а на второй итерации for - второе значение $list.
типа
PHP
1
2
3
4
5
6
7
8
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) {
   $list[] = $row4['Title'];}
for(k=0; k<22; k++){
$name = $list[$k];
// и тут было "Отсутствие представления/идентификации/верификации"
}
// Set up the title for the graph
$graph->title->Set("$Name");
Весь код, с вашим циклом:
Кликните здесь для просмотра всего текста
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
<?php
//формируем график
$conn = &ADONewConnection('mysql'); # создаем соединение
$conn->Connect('localhost','uvpz','uvpz','uvpz');   # соединяемся с mysql
$conn->SetCharSet('utf8');
$conn->SetFetchMode(ADODB_FETCH_ASSOC);
//берем запрос из основного
$recordSet = &$conn->Execute($sql);
 
// Формируем граф в цикле
for($i=1; $i<22; $i++)
                {
//Формируем график
        foreach($recordSet as $key=>$data) {
 
        //$Smena_g[] =substr($data['Name'],0,20);
        $Smena_g[] = substr($data['Name'], 0, strpos($data['Name'], ' ' )); 
        $data_g[] = $data["c$i"];
        
        };
//расшифровка критериев !!! Тут не получается
 
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) 
   $list[] = $row4['Title'];
        
// Setup the graph.
$graph = new Graph(500,250);
$graph->img->SetMargin(40,20,25,120);
$graph->SetScale("textlin");
$graph->SetMarginColor("lightblue:1.1");
$graph->SetShadow();
 
// Set up the title for the graph
$graph->title->Set("$list");                        //тут в 1 итерации должен выводится 0 элемент масива, т.е Отсутствие представления/идентификации/верификации
$graph->title->SetMargin(8);
$graph->title->SetFont(FF_VERDANA,FS_BOLD,12);
$graph->title->SetColor("darkred");
 
// Setup font for axis
$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
 
// Show 0 label on Y-axis (default is not to show)
$graph->yscale->ticks->SupressZeroLabel(false);
 
// Setup X-axis labels
$graph->xaxis->SetTickLabels($Smena_g);
$graph->xaxis->SetLabelAngle(90);
 
// Create the bar pot
$bplot = new BarPlot($data_g);
$bplot->SetWidth(0.6);
 
// Setup color for gradient fill style
$bplot->SetFillGradient("navy:0.9","navy:1.85",GRAD_LEFT_REFLECTION);
 
// Set color for the frame of each bar
$bplot->SetColor("white");
$graph->Add($bplot);
 
// Finally send the graph to the browser
ob_start();
$graph->Stroke();
header('Content-type: text/html; charset=utf-8');
$image = 'data:image/png;base64,'.base64_encode(ob_get_clean());
?>
 
<!DOCTYPE html>
<html lang="ru">
    <head></head>
    <body>
        <img src="<?=$image?>" />
    </body>
</html>

...простите за назойливость....
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
22.04.2015, 19:58 12
Лучший ответ Сообщение было отмечено Владимир23 как решение

Решение

Цитата Сообщение от Владимир23 Посмотреть сообщение
на первой его итерации мне нужно получить 1 значение переменной $list и вывести его в название графика
ну так пишите $list[$i] а не $list. То есть $graph->title->Set($list[$i]);

Все равно ниче не понятно... основной цикл у Вас на 22 итерации. И каждую итерацию вы заполняете массив $list по новой и каждый раз одинаковыми значениями. Может быть есть смысл конструкцию
PHP
1
2
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) 
   $list[] = $row4['Title'];
Поставить 1 раз ПЕРЕД циклом, а не В нем?
1
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
23.04.2015, 06:19  [ТС] 13
Цитата Сообщение от pav1uxa Посмотреть сообщение
Сообщение от Владимир23
на первой его итерации мне нужно получить 1 значение переменной $list и вывести его в название графика
ну так пишите $list[$i] а не $list. То есть $graph->title->Set($list[$i]);
Все равно ниче не понятно... основной цикл у Вас на 22 итерации. И каждую итерацию вы заполняете массив $list по новой и каждый раз одинаковыми значениями. Может быть есть смысл конструкцию
Код PHP
1
2
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC))
$list[] = $row4['Title'];
Поставить 1 раз ПЕРЕД циклом, а не В нем?
Последний раз редактировалось pav1uxa; Вчера в 22:59.
Спасибо огромное, допер, наконец...

Вот, что получилось.
только в графике пришлось ключ на 1 меньше делать...
Кликните здесь для просмотра всего текста
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<?php
 // подключаем основную библиотеку ADOdb
include('/adodb/adodb.inc.php'); 
//подключаем jpgraph
include ('jpgraph/src/jpgraph.php');
include ('jpgraph/src/jpgraph_bar.php');
 
// подключаем форму
require_once "/Script/form.html";
require_once "/Script/form_report_qp.html";
require_once "/Script/form1.html";
 
//Список сотрудников
 
//Получаем id пользователся из сессии Joomla
$user = JFactory::getUser();
$u = $user->id;
//echo $u;
 
try{
//Подключаемся к БД
$dbh = new PDO('mysql:host=localhost;dbname=uvpz; charset=utf8', 'root', ''/*, array(PDO::ATTR_PERSISTENT => true) - постоянное соединение*/);
// Если есть даты, то выполняем запрос
if (isset($_POST['datestart'])) $datestart=$_POST['datestart']; else $datestart= '';
if (isset($_POST['dateend'])) $dateend=$_POST['dateend']; else $dateend= '';
//echo $datestart;
//echo $dateend;
//Помещаем переменные в сессию
$_SESSION['datestart'] = $datestart;
$_SESSION['dateend'] = $dateend;
 
 
//Выполняем запрос
$sql1 = "SELECT uvpz.foul_conformity.f_name AS f_name, uvpz.foul_conformity.f_title AS Title FROM uvpz.foul_conformity;";
$sql = "SELECT uvpz.y9hmp_users.id, uvpz.y9hmp_users.name AS Name, uvpz.y9hmp_usergroups.title AS Smena, 
sum(uvpz.foul.count) as count, 
round(sum(uvpz.foul.c1)/sum(uvpz.foul.count)*100,2) as c1,round(sum(uvpz.foul.c2)/sum(uvpz.foul.count)*100,2) as c2,
round(sum(uvpz.foul.c3)/sum(uvpz.foul.count)*100,2) as c3,round(sum(uvpz.foul.c4)/sum(uvpz.foul.count)*100,2) as c4,
round(sum(uvpz.foul.c5)/sum(uvpz.foul.count)*100,2) as c5,round(sum(uvpz.foul.c6)/sum(uvpz.foul.count)*100,2) as c6,
round(sum(uvpz.foul.c7)/sum(uvpz.foul.count)*100,2) as c7,round(sum(uvpz.foul.c8)/sum(uvpz.foul.count)*100,2) as c8,
round(sum(uvpz.foul.c9)/sum(uvpz.foul.count)*100,2) as c9,round(sum(uvpz.foul.c10)/sum(uvpz.foul.count)*100,2) as c10,
round(sum(uvpz.foul.c11)/sum(uvpz.foul.count)*100,2) as c11,round(sum(uvpz.foul.c12)/sum(uvpz.foul.count)*100,2) as c12,
round(sum(uvpz.foul.c13)/sum(uvpz.foul.count)*100,2) as c13,round(sum(uvpz.foul.c14)/sum(uvpz.foul.count)*100,2) as c14,
round(sum(uvpz.foul.c15)/sum(uvpz.foul.count)*100,2) as c15,round(sum(uvpz.foul.c16)/sum(uvpz.foul.count)*100,2) as c16,
round(sum(uvpz.foul.c17)/sum(uvpz.foul.count)*100,2) as c17,round(sum(uvpz.foul.c18)/sum(uvpz.foul.count)*100,2) as c18,
round(sum(uvpz.foul.c19)/sum(uvpz.foul.count)*100,2) as c19,round(sum(uvpz.foul.c20)/sum(uvpz.foul.count)*100,2) as c20,
round(sum(uvpz.foul.c21)/sum(uvpz.foul.count)*100,2)  as c21
FROM uvpz.y9hmp_users
LEFT JOIN uvpz.y9hmp_user_usergroup_map ON uvpz.y9hmp_users.id = uvpz.y9hmp_user_usergroup_map.user_id
LEFT JOIN uvpz.y9hmp_usergroups ON uvpz.y9hmp_user_usergroup_map.group_id = uvpz.y9hmp_usergroups.id
LEFT JOIN uvpz.foul ON uvpz.y9hmp_users.name = uvpz.foul.employee
WHERE parent_id = 10 AND uvpz.foul.c_date IS NOT null
AND uvpz.foul.c_date Between '$datestart' and '$dateend' 
AND uvpz.y9hmp_usergroups.ns_id = '$u'
Group By uvpz.y9hmp_users.name
Order by uvpz.y9hmp_users.name ASC";
$stmt1 = $dbh->query($sql1);
$stmt2 = $dbh->query($sql1);
$stmt4 = $dbh->query($sql1);
$stmt = $dbh->query($sql);
$stmt3 = $dbh->query($sql);
 
echo "<table Style='font-size: 14px'>";
echo "<tr>";
echo "<td>";
echo "<form action='' method='post'>";
echo "Выберите дату/время начала периода: "."<input type='date' name='datestart'>";
echo "</td>";
echo "<td>";
echo "Выберите дату/время конца периода: "."<input type='date' name='dateend'>";
echo "</td>";
echo "<td align='center'>";
echo "<input type='submit' name='date' value='Выполнить'>";
echo "</form>";
echo "</td>";
echo "<tr>";
echo "</table>";
 
if (isset ($_POST['datestart']) & isset($_POST['dateend'])) {
 
echo "<table Style='font-size: 14px'>";
echo "<tr>"."<td>"."Дата начала периода:  ".$datestart."</td>"."<td>"."Дата конца периода:  ".$dateend."</td>"."<td>"."</td>"."</tr>";
echo "</table>";
 
echo "<table>";
echo "<tr>";
echo "<td>"."Сотрудник"."</td>"."<td>"."Оценки"."</td>";
 
//Названия показателей
while($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)) {
echo "<td>"."<bg>".$row1['f_name']."<bg>"."</td>";
}
echo "</tr>";
 
//Выводим значения показателей в таблицу.
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
 
echo "<tr>"."<td>".$row['Name']."</td>"."<td>".$row['count']."</td>"."<td>".$row['c1']."</td>"."<td>".$row['c2']."</td>"."<td>".$row['c3']."</td>"."<td>".$row['c4']."</td>"."<td>".$row['c5']."</td>"."<td>".$row['c6']."</td>"."<td>".$row['c7']."</td>"
."<td>".$row['c8']."</td>"."<td>".$row['c9']."</td>"."<td>".$row['c10']."</td>"."<td>".$row['c10']."</td>"."<td>".$row['c12']."</td>"."<td>".$row['c13']."</td>"."<td>".$row['c14']."</td>"
."<td>".$row['c15']."</td>"."<td>".$row['c16']."</td>"."<td>".$row['c17']."</td>"."<td>".$row['c18']."</td>"."<td>".$row['c19']."</td>"."<td>".$row['c20']."</td>"."<td>".$row['c21']."</td>"."</tr>";
}
echo "</table>";
echo "<br>";
echo "<table>";
 
echo "<tr>"."<td>"."Критерий"."</td>"."<td>"."Сокращение"."</td>"."</tr>";
 
// Выводим все критерии в цикле
while($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>"."<td>".$row2['f_name']."</td>"."<td>".$row2['Title']."</td>"."</tr>";
}
echo "</table>";
 
?>
 
<?php
//формируем график
$conn = &ADONewConnection('mysql'); # создаем соединение
$conn->Connect('localhost','uvpz','uvpz','uvpz');   # соединяемся с mysql
$conn->SetCharSet('utf8');
$conn->SetFetchMode(ADODB_FETCH_ASSOC);
//берем запрос из основного
$recordSet = &$conn->Execute($sql);
 
while ($row4 = $stmt4->fetch(PDO::FETCH_ASSOC)) {
   $list[] = $row4['Title'];
    }
    
 
// Формируем граф в цикле
for($i=1; $i<22; $i++)
                {
//Формируем график
        foreach($recordSet as $key=>$data) {
 
        //$Smena_g[] =substr($data['Name'],0,20);
        $Smena_g[] = substr($data['Name'], 0, strpos($data['Name'], ' ' )); 
        $data_g[] = $data["c$i"];
        
        };
//расшифровка критериев 
 
 
     
 
// Setup the graph.
$graph = new Graph(500,250);
$graph->img->SetMargin(40,20,25,120);
$graph->SetScale("textlin");
$graph->SetMarginColor("lightblue:1.1");
$graph->SetShadow();
 
// Установите заголовок для графика
$graph->title->Set('c'.$i.' - '.$list[$i-1]);
$graph->title->SetMargin(8);
$graph->title->SetFont(FF_VERDANA,FS_BOLD,10);
$graph->title->SetColor("darkred");
 
// Шрифт Установка для оси
$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
 
// Показать 0 ярлык на Y-оси (по умолчанию не показывать)
$graph->yscale->ticks->SupressZeroLabel(false);
 
// Настройка X-метки оси
$graph->xaxis->SetTickLabels($Smena_g);
$graph->xaxis->SetLabelAngle(90);
 
// Создайте бар горшок
$bplot = new BarPlot($data_g);
$bplot->SetWidth(0.6);
 
//покажем значения над каждым столбцом
$bplot->value->Show();
 
// установим формат вывода значений
$bplot->value->SetFormat('$%01.2f');
 
// установим цвет для значений
$bplot->value->SetColor('#0066ff');
 
// Настройка цвета для градиента стилем заливки
$bplot->SetFillGradient("navy:0.9","navy:1.85",GRAD_LEFT_REFLECTION);
 
// Установить цвет для рамки каждого бара
$bplot->SetColor("white");
$graph->Add($bplot);
 
// Наконец, отправьте сообщение график в браузере
ob_start();
$graph->Stroke();
header('Content-type: text/html; charset=utf-8');
$image = 'data:image/png;base64,'.base64_encode(ob_get_clean());
?>
 
<!DOCTYPE html>
<html lang="ru">
    <head></head>
    <body>
        <img src="<?=$image?>" />
    </body>
</html>
 
<?php 
 
    //unset ($Smena_g);
    unset($data_g);
    };
    
};
 
}
catch(PDOException $e){
echo 'Error : '.$e->getMessage();
exit();
};
?>
0
23.04.2015, 06:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2015, 06:19
Помогаю со студенческими работами здесь

Перебор массива
Добрый день! Подскажите как можно получить значения массива между пустыми строками и занести в...

Перебор массива
Здравствуйте, помогите правильно перебрать массив. Есть двумерный массив вида: $mass = array(...

Перебор массива
Функция возвращает массив,вот такого вида Array ( =&gt; Array ( =&gt; 0...

Перебор массива
Собственно вот массив, с вопросами для тестов: &lt;?php $questions = array( array( ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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