PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 7
Lebemegal6 Отправлено: 05 Мая, 2011 - 15:25:46 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Да, это именно то что нужно, большое спасибо!!!
Правда вот реализовав данный скрипт я столкнулся с небольшой проблемой, которую ранее не предусмотрел

конкретно вот здесь и далее:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. foreach($arr['id'] as $key => $value)
  3. {
  4.         ${'id'.$value}['date'][] = $arr['date'][$key];
  5.         ${'id'.$value}['count'][] = $arr['count'][$key];
  6. }
  7. print_r($id1);
  8. echo '<br>';
  9. print_r($id2);


Проблема заключается в том, что это в примере id1 и id2, а на практике может быть id250 или id 2345. Возможно ли как нибудь, унифицировать данный скрипт:
CODE (htmlphp):
скопировать код в буфер обмена
  1. foreach($date as $val)
  2. {
  3.    if(!in_array($val,$id1['date']))
  4.    {
  5.       $id1['date'][] = $val;
  6.       $id1['count'][] = '0';
  7.    }
  8.    if(!in_array($val,$id2['date']))
  9.    {
  10.       $id2['date'][] = $val;
  11.       $id2['count'][] = '0';
  12.    }
  13. }
Lebemegal6 Отправлено: 01 Мая, 2011 - 15:37:02 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Саныч, это именно то, что нужно !!! Спасибо большое!!!

А возможно ли теперь $id1 и $id2 сравнить с
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         0 = > '01-01',
  3.         1 = > '02-11',
  4.         2 = > '04-14',
  5.         3 = > '10-01',
  6.         4 = > '06-15'
  7. );
  8.  


и дополнить $id1 и $id2 чтоб получилось примерно следующее
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ID1 array(
  3.         date => array(
  4.                 0 = > '01-01',
  5.                 1 = > '04-14',
  6.                 2 = > '02-11',
  7.                 3 = > '10-01',
  8.                 4 = > '06-15'
  9.                 ),    
  10.         count => array(
  11.                 0 => 'str1',
  12.                 1 => 'str3',
  13.                 2 => '0',
  14.                 3 => '0',
  15.                 4 => '0',
  16.                 )
  17.         );
  18.  
Lebemegal6 Отправлено: 29 Апреля, 2011 - 22:01:43 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Попытаюсь объяснить. Вот есть у нас массив №1: все данные выбираются из БД в таком вот виде:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         id => array(
  3.                 0 => '1',
  4.                 1 => '2',
  5.                 2 => '1',
  6.                 ),
  7.         date => array(
  8.                 0 = > '01-01',
  9.                 1 = > '02-11',
  10.                 2 = > '04-14'
  11.                 ),    
  12.         count => array(
  13.                 0 => 'str1',
  14.                 1 => 'str2',
  15.                 2 => 'str3'
  16.                 )
  17.         );
  18.  
  19.  

массив с ключами, в примере у нас только ключи(ID) 1 и 2
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. id => array(
  3.                 0 => '1',
  4.                 1 => '2',
  5.                 2 => '1',
  6.                 )
  7.  


Оставшаяся часть общего массива:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3.  date => array(
  4.                 0 = > '01-01',
  5.                 1 = > '02-11',
  6.                 2 = > '04-14'
  7.                 ),    
  8.         count => array(
  9.                 0 => 'str1',
  10.                 1 => 'str2',
  11.                 2 => 'str3'
  12.                 )
  13.  



в нем позиции 0 = > '01-01', 2 = > '04-14'
0 => 'str1', 2 => 'str3' соответствуют ID 1, исходя из массива №1, а оставшиеся ID 2


Т.о нужно эти позиции выдернуть в отдельный массив(
CODE (htmlphp):
скопировать код в буфер обмена
  1.         date => array(
  2.                 0 = > '02-11',
  3.                 1 = > '04-14'
  4.                 ),    
  5.         count => array(
  6.                 0 => 'str1',
  7.                 1 => 'str3'
  8.                 )
  9.         );
) для ID 1(так должен называться новый массив и
(
CODE (htmlphp):
скопировать код в буфер обмена
  1.                 0 = > '01-01'
  2.                 ),    
  3.         count => array(
  4.                 0 => 'str2'
  5.                 )
) для ID 2
Lebemegal6 Отправлено: 29 Апреля, 2011 - 14:19:31 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Судя по всему задача не разрешима Огорчение
Lebemegal6 Отправлено: 27 Апреля, 2011 - 13:31:29 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Прошу прощения, не совсем еще в массивах разбираюсь.


Массив дат:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         0 = > '01-01',
  3.         1 = > '02-11',
  4.         2 = > '04-14',
  5.         3 = > '10-01',
  6.         4 = > '06-15'
  7. );
  8.  


То, что я назвал 3ех мерным массивом:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         id => array(
  3.                 0 => '1',
  4.                 1 => '2',
  5.                 2 => '1',
  6.                 ),
  7.         date => array(
  8.                 0 = > '01-01',
  9.                 1 = > '02-11',
  10.                 2 = > '04-14'
  11.                 ),     
  12.         count => array(
  13.                 0 => 'str1',
  14.                 1 => 'str2',
  15.                 2 => 'str3'
  16.                 )
  17.         );
  18.  



Из этого массива нужно получить несколько массивов по значению id:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ID1 array(
  3.         date => array(
  4.                 0 = > '02-11',
  5.                 1 = > '04-14'
  6.                 ),     
  7.         count => array(
  8.                 0 => 'str1',
  9.                 1 => 'str3'
  10.                 )
  11.         );
  12.  
  13. ID2 array(
  14.         date => array(
  15.                 0 = > '01-01'
  16.                 ),     
  17.         count => array(
  18.                 0 => 'str2'
  19.                 )
  20.         );
  21.  
  22.  


Вот эти 2 массива ID1 и ID2 нужно сравнить с DATE и дополнить соответствующие массивы недостающими датами а соответствующие поля "count" за бить нулями, чтоб получилось следующее:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ID1 array(
  3.         date => array(
  4.                 0 = > '02-11',
  5.                 1 = > '02-11',
  6.                 2 = > '04-14',
  7.                 3 = > '10-01',
  8.                 4 = > '06-15'
  9.                 ),     
  10.         count => array(
  11.                 0 => 'str1',
  12.                 1 => 'str3',
  13.                 2 => '0',
  14.                 3 => '0',
  15.                 4 => '0',
  16.                 )
  17.         );
  18.  
  19.  

Надеюсь так понятнее Ниндзя
Lebemegal6 Отправлено: 27 Апреля, 2011 - 12:13:34 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Да собстно давать то нечего пока что Огорчение
Lebemegal6 Отправлено: 27 Апреля, 2011 - 12:04:50 • Тема: Операции с многомерными массивами • Форум: Хранение данных, их вывод и обработка

Ответов: 13
Просмотров: 6923
Доброе время суток. Столкнулся с такой проблемой при написании диплома.
Есть массив дат допустим Array(1-1, 1-2, .... 12-31)
B есть 3ех мерный массив array("id" => "1 ... 99", "date"=>"1-1 ... 5-2", "count"=>" 1... 99")
Возможно ли сделать такчтоб вот из 3ех мерного массива получить несколько 2ух мерных
по id т.е: Id1("date"=>"1-1 ... 5-2", "count"=>" 1... 99"); Id2("date"=>"1-1 ... 5-2", "count"=>" 1... 99") и т.д, только id должны бить не key'и а именно значени
но это еще не все Закатив глазки
Дальше нужно сравнить полученные массивы с массивом дат Array(1-1, 1-2, .... 12-31) и
дополнить соответствующие массивы недостающими датами а соответствующие поля "count" за бить нулями.

Прошу сильно не ругать и больно не бить, я только учусь Подмигивание

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB