Привет! Я обрабатываю один день из тв-программы. Делаю два массива: один - со временем, другой - с названием передачи. Затем объединяю их в один (код в самом низу). Я с foreach немного запутался - ведь строк должно быть столько, сколько и времен, а не сколько передач. Получается такой результат. Код (Text): Array ( [10:00] => Школа горилл [09:36] => Школа горилл ) Array ( [10:25] => Экзотические питомцы [14:00] => Экзотические питомцы [23:10] => Экзотические питомцы [07:15] => Экзотические питомцы ) Array ( [11:15] => В дебрях Африки [15:50] => В дебрях Африки ) Array ( [12:10] => Королева львов [17:40] => Королева львов [01:55] => Королева львов [06:25] => Королева львов ) Array ( [13:05] => Аквариумный бизнес [18:35] => Аквариумный бизнес [22:15] => Аквариумный бизнес [05:35] => Аквариумный бизнес ) Array ( [14:55] => Самые милые питомцы Америки [03:45] => Самые милые питомцы Америки ) Array ( [16:45] => Речные монстры ) Array ( [19:30] => Вторжение гигантских крокодилов [02:50] => Вторжение гигантских крокодилов [08:02] => Вторжение гигантских крокодилов ) Array ( [20:25] => Полиция Хьюстона: отдел по защите животных [00:05] => Полиция Хьюстона: отдел по защите животных [04:40] => Полиция Хьюстона: отдел по защите животных ) Array ( [21:20] => Правосудие Техаса [01:00] => Правосудие Техаса [08:49] => Правосудие Техаса ) А надо, чтобы получилось вот так: Код (Text): Array ( [10:00] => Школа горилл [09:36] => Школа горилл [10:25] => Экзотические питомцы [14:00] => Экзотические питомцы [23:10] => Экзотические питомцы [07:15] => Экзотические питомцы [11:15] => В дебрях Африки [15:50] => В дебрях Африки [12:10] => Королева львов [17:40] => Королева львов [01:55] => Королева львов [06:25] => Королева львов [13:05] => Аквариумный бизнес [18:35] => Аквариумный бизнес [22:15] => Аквариумный бизнес [05:35] => Аквариумный бизнес [14:55] => Самые милые питомцы Америки [03:45] => Самые милые питомцы Америки [16:45] => Речные монстры [19:30] => Вторжение гигантских крокодилов [02:50] => Вторжение гигантских крокодилов [08:02] => Вторжение гигантских крокодилов [20:25] => Полиция Хьюстона: отдел по защите животных [00:05] => Полиция Хьюстона: отдел по защите животных [04:40] => Полиция Хьюстона: отдел по защите животных [21:20] => Правосудие Техаса [01:00] => Правосудие Техаса [08:49] => Правосудие Техаса ) Помогите подправить код, пожалуйста? Собственно, сам код: Код (Text): <?php $raw_tv = array( '10:00, 09:36 Школа горилл', '10:25, 14:00, 23:10, 07:15 Экзотические питомцы', '11:15, 15:50 В дебрях Африки', '12:10, 17:40, 01:55, 06:25 Королева львов', '13:05, 18:35, 22:15, 05:35 Аквариумный бизнес', '14:55, 03:45 Самые милые питомцы Америки', '16:45 Речные монстры', '19:30, 02:50, 08:02 Вторжение гигантских крокодилов', '20:25, 00:05, 04:40 Полиция Хьюстона: отдел по защите животных', '21:20, 01:00, 08:49 Правосудие Техаса' ); foreach ($raw_tv as $line) { preg_match_all('/[0-2][0-9]:[0-5][0-9]/u', $line, $time_array, PREG_PATTERN_ORDER); preg_match_all('/([а-яёa-z]+(.)+)+/ui', $line, $show_array, PREG_PATTERN_ORDER); foreach($show_array[0] as $show){ $arrIn = array_fill_keys($time_array[0], $show); } echo '<pre>'; print_r($arrIn); echo '</pre>'; } ?>
Я вроде разобрался PHP: <?php $raw_tv = array( '10:00, 09:36 Школа горилл', '10:25, 14:00, 23:10, 07:15 Экзотические питомцы', '11:15, 15:50 В дебрях Африки', '12:10, 17:40, 01:55, 06:25 Королева львов', '13:05, 18:35, 22:15, 05:35 Аквариумный бизнес', '14:55, 03:45 Самые милые питомцы Америки', '16:45 Речные монстры', '19:30, 02:50, 08:02 Вторжение гигантских крокодилов', '20:25, 00:05, 04:40 Полиция Хьюстона: отдел по защите животных', '21:20, 01:00, 08:49 Правосудие Техаса' ); $arrOut = array(); foreach ($raw_tv as $line){ preg_match_all('/[0-2][0-9]:[0-5][0-9]/u', $line, $time_array, PREG_PATTERN_ORDER); preg_match_all('/([а-яёa-z]+(.)+)+/ui', $line, $show_array, PREG_PATTERN_ORDER); foreach($show_array[0] as $show){ $arrIn = array_fill_keys($time_array[0], $show); } $arrOut = array_merge($arrOut, $arrIn); } echo '<pre>'; print_r($arrOut); echo '</pre>'; ?>
Даже не знаю, стоит ли создавать новую тему или здесь продолжить... Следующая цель - это сортировка по времени. Если написать: PHP: ksort($arrOut) echo '<pre>'; print_r($arrOut); echo '</pre>'; ...то выведет: Код (Text): Array ( [00:05] => Полиция Хьюстона: отдел по защите животных [01:00] => Правосудие Техаса [01:55] => Королева львов [02:50] => Вторжение гигантских крокодилов [03:45] => Самые милые питомцы Америки [04:40] => Полиция Хьюстона: отдел по защите животных [05:35] => Аквариумный бизнес [06:25] => Королева львов [07:15] => Экзотические питомцы [08:02] => Вторжение гигантских крокодилов [08:49] => Правосудие Техаса [09:36] => Школа горилл //Все, что находится выше и ниже ЭТОЙ строки, нужно поменять местами... [10:00] => Школа горилл [10:25] => Экзотические питомцы [11:15] => В дебрях Африки [12:10] => Королева львов [13:05] => Аквариумный бизнес [14:00] => Экзотические питомцы [14:55] => Самые милые питомцы Америки [15:50] => В дебрях Африки [16:45] => Речные монстры [17:40] => Королева львов [18:35] => Аквариумный бизнес [19:30] => Вторжение гигантских крокодилов [20:25] => Полиция Хьюстона: отдел по защите животных [21:20] => Правосудие Техаса [22:15] => Аквариумный бизнес [23:10] => Экзотические питомцы ) А на самом деле нужно сделать так, чтобы все, что до 10:00, шло после 23:10... Есть у кого-нибудь идеи?