Дан этот массив $data:
Array
(
[0] => Array
(
[day] => 3
[sotr] => 1
[hours] => 6
[proj] => 1
)
[1] => Array
(
[day] => 4
[sotr] => 1
[hours] => 3
[proj] => 1
)
[2] => Array
(
[day] => 5
[sotr] => 1
[hours] => 3
[proj] => 1
)
[3] => Array
(
[day] => 6
[sotr] => 1
[hours] => 4
[proj] => 2
)
[4] => Array
(
[day] => 9
[sotr] => 1
[hours] => 6
[proj] => 2
)
)
Формирую массив следующим образом:
$c = $this->count; // count = 2
for($i=0;i<$c;$i++){
$j=0;
foreach($data as $key=>$value){
$a = $data[$j]['day'];
$arr[$i]['name']=$data[$i]['proj'];
$arr[$i][$a] = $data[$i]['hours'];
$j++;
}
}
print_r($arr);
Спустя 2 минуты, 30 секунд (20.01.2012 - 16:19) Winston написал(а):
А какой массив должен на выходе получится?
Спустя 7 минут, 3 секунды (20.01.2012 - 16:26) Aleks-prog написал(а):
На выходе должен получится массив:
Array
(
[0] => Array
(
[name] => // из $data[$i]['proj']; имя проекта
[4] => // далее числа из $data[$j]['day']; а в значении => часы из $data[$i]['hours'];
[5]
.......................... и тд
)
[1] => Array
(
[name] => 4
[4] => // далее числа из $data[$j]['day']; а в значении => часы из $data[$i]['hours'];
[5]
.......................... и тд
)
)
Спустя 22 минуты, 41 секунда (20.01.2012 - 16:49) Aleks-prog написал(а):
если поможет, то
Во внутреннем цикле я заполняю колонки для таблицы и их значения, а также имя таблицы, то есть
дан массив $data, который я привел в первом посте, далее привожу коментарии по каждой строки ниже:
Во внутреннем цикле я заполняю колонки для таблицы и их значения, а также имя таблицы, то есть
дан массив $data, который я привел в первом посте, далее привожу коментарии по каждой строки ниже:
for($i=0;i<$c;$i++){
$j=0;
foreach($data as $key=>$value){
$a = $data[$j]['day']; // создание ключа(числа) для нового массива
$arr[$i]['name']=$data[$i]['proj']; // новый массив[0]['name']=имя проекта(или id)
$arr[$i][$a] = $data[$i]['hours'];// новый массив[0]['число месяца']=отработанные часы
$j++;// переходим к следующему дню
}
}
Спустя 4 часа, 22 минуты, 27 секунд (20.01.2012 - 21:11) Aleks-prog написал(а):
UP
если не сложно помогите, очень нужно
если не сложно помогите, очень нужно
Спустя 1 день, 10 часов, 47 минут, 20 секунд (22.01.2012 - 07:58) Guest написал(а):
UP
Получается бесконечный цикл, кто-нибудь отзовитесь
Получается бесконечный цикл, кто-нибудь отзовитесь
Спустя 5 часов, 8 минут, 12 секунд (22.01.2012 - 13:07) Aleks-prog написал(а):
походу никто так и не подскажет, эх...
Спустя 37 минут, 53 секунды (22.01.2012 - 13:44) redreem написал(а):
как у тебя вообще работает?
for($i=0;i<$c;$i++){ - $i<$c же.
for($i=0;i<$c;$i++){ - $i<$c же.
Спустя 3 минуты, 24 секунды (22.01.2012 - 13:48) redreem написал(а):
чтобы "помогать" - вытащи отдельно свой код, чтоб можно было его сразу тестить. на коленке гадать чтоли?
Спустя 4 часа, 35 минут, 9 секунд (22.01.2012 - 18:23) Aleks-prog написал(а):
Это я уже исправил, все равно получается бесконечный цикл
Спустя 6 минут, 37 секунд (22.01.2012 - 18:30) redreem написал(а):
не видя кода, который можно запустить - мне это ни о чем не говорить. экстрасенсов нету тут.
Спустя 4 минуты, 15 секунд (22.01.2012 - 18:34) Aleks-prog написал(а):
посмотрите тестовый код:
$data = array('0'=>array('day'=>'3','sotr'=>'1','hours'=>'3','proj'=>'1'),
'1'=>array('day'=>'4','sotr'=>'1','hours'=>'3','proj'=>'1'),
'2'=>array('day'=>'5','sotr'=>'1','hours'=>'4','proj'=>'2')
'3'=>array('day'=>'9','sotr'=>'1','hours'=>'6','proj'=>'2'));
$c = 2;
for($i=0;$i<$c;$i++){
$j=0;
foreach($data as $key=>$value){
$a = $data[$j]['day'];
$arr[$i]['name']=$data[$i]['proj'];
$arr[$i][$a] = $data[$i]['hours'];
$j++;
}
}
print_r($arr);
Спустя 18 минут, 35 секунд (22.01.2012 - 18:52) redreem написал(а):
ничего бесконечного не получается. у меня выводит:
Цитата |
Array ( [0] => Array ( [name] => 1 [3] => 3 [4] => 3 [5] => 3 [9] => 3 ) [1] => Array ( [name] => 1 [3] => 3 [4] => 3 [5] => 3 [9] => 3 ) ) |
правда ошибочка одна есть - запятой нет одной в объявлении массива $data
Спустя 14 минут, 10 секунд (22.01.2012 - 19:07) Aleks-prog написал(а):
чо то я ваще уже - голова кипит,
for($i=0;$i<$c;$i++){$c - массив же, мне надо значит count($c) :lol:
Спустя 31 секунда (22.01.2012 - 19:07) asokol написал(а):
А в чем смысл всех этих махинаций?
Если я правильно понимаю, то $c=2 - это количество разных proj в $data (1 и 2). По идее, Вам надо получить список проектов с датой и временем внесения изменений (или чего-то подобного). Если это не так, то объясните, что за $this->count и каков смысл всех этих телодвижений.
Если я правильно понимаю, то $c=2 - это количество разных proj в $data (1 и 2). По идее, Вам надо получить список проектов с датой и временем внесения изменений (или чего-то подобного). Если это не так, то объясните, что за $this->count и каков смысл всех этих телодвижений.
Спустя 2 минуты, 4 секунды (22.01.2012 - 19:09) redreem написал(а):
Цитата |
$c - массив же |
да - с головой че-то не то.
Спустя 10 минут, 13 секунд (22.01.2012 - 19:19) Aleks-prog написал(а):
кипит уже, на простых вещах запинаюсь, надо отдохнуть)))
мне нужно получить список проектов, выполненных сотрудником за определенный месяц, год, и отработанные часы за проектом за каждый день, вся инфа есть в БД, работаю с zend и extjs 4, пытаюсь заполнить тем самый grid из extjs
мне нужно получить список проектов, выполненных сотрудником за определенный месяц, год, и отработанные часы за проектом за каждый день, вся инфа есть в БД, работаю с zend и extjs 4, пытаюсь заполнить тем самый grid из extjs
Спустя 8 минут, 16 секунд (22.01.2012 - 19:28) asokol написал(а):
Так лучше прямо из БД по максимуму вытягивать то, что нужно получить.
Спустя 55 минут, 13 секунд (22.01.2012 - 20:23) Aleks-prog написал(а):
Кстате непонятно, добавил нужное условие, но цикл выполняется ТОЛЬКО 1 раз, хотя по условию должен выполняться 2 раза
$c = array('0'=>array('project'=>'1'),
'1'=>array('project'=>'2') );
$data = array('0'=>array('day'=>'3','sotr'=>'1','hours'=>'3','proj'=>'1'),
'1'=>array('day'=>'4','sotr'=>'1','hours'=>'3','proj'=>'1'),
'2'=>array('day'=>'5','sotr'=>'1','hours'=>'4','proj'=>'2')
'3'=>array('day'=>'9','sotr'=>'1','hours'=>'6','proj'=>'2'));
for($i=0;$i<2;$i++){
$j=0;
foreach($data as $key=>$val){
if($data[$j]['proj']==$c[$i]['project']){
$a = $data[$j]['day'];
$arr[$i]['name']=$data[$j]['proj'];
$arr[$i][$a] = $data[$j]['hours'];
$j++;
}
}
}
//print_r($data);
print_r($arr);
Спустя 1 час, 58 минут, 32 секунды (22.01.2012 - 22:21) neadekvat написал(а):
Честно говоря, нихера не понятно.
Давай сначала: исходные данные, что с ними нужно сделать, пример конечных данных.
Причем все это желательно в виде php-кода (как в последнем листинге), а не в виде распечатки массива.
Давай сначала: исходные данные, что с ними нужно сделать, пример конечных данных.
Причем все это желательно в виде php-кода (как в последнем листинге), а не в виде распечатки массива.
Спустя 11 часов, 19 минут, 17 секунд (23.01.2012 - 09:41) Aleks-prog написал(а):
Пример конечных данных:
Описание:
name - id проекта
поля 3, 4 идентификатора '0' и 5, 9 идентификатора '1' - числа затраченные на разработку проекта, а их значения - часы затраченные на разработку проекта по каждому дню
array('0'=>array('name'=>'1', '3'=>'3', '4'=>'3'),
'1'=>array('name=>'2', '5'=>'4', '9'=>'6') );
Описание:
name - id проекта
поля 3, 4 идентификатора '0' и 5, 9 идентификатора '1' - числа затраченные на разработку проекта, а их значения - часы затраченные на разработку проекта по каждому дню
Спустя 18 минут (23.01.2012 - 09:59) Aleks-prog написал(а):
самая главная проблема сейчас что не добавляется индекса '1' в массив
В том, что на выходе получается всего один индекс '0' а должно быть два: '0' и '1', то есть
а получается ВОТ ЧТО:
В том, что на выходе получается всего один индекс '0' а должно быть два: '0' и '1', то есть
array('0'=>array('name'=>'1'),
'1'=>array('name=>'2') );
а получается ВОТ ЧТО:
array('0'=>array('name'=>'1'))
Спустя 9 минут (23.01.2012 - 10:08) Aleks-prog написал(а):
Все получилось тема закрыта