Val Posted May 14, 2007 Report Share Posted May 14, 2007 Ir masīvs $mas. No šī masīva nepieciešams izdrukāt tā vērtības, apvienojot elementus, kuriem sākums sakrīt līdz mīnuszīmei. Līdz masīva elementa sadalīšanai pa reizinātājiem tb aaa un 2111 problēmu nav, bet nevaru izdomāt to loģiku. Visādi izmēģinājos: ta neparāda pēdējo skaitli pirms nākamās burtu kombinācijas; ta atkal pirmo skaitli. $mas = array( 0 => 'aaa-2111', 1 => 'aaa-2342', 2 => 'aaa-1532', 3 => 'aaa-1768', 4 => 'bbb-1997', 5 => 'bbb-1653', 6 => 'bbb-1456', 7 => 'bbb-2145', 8 => 'ccc-1401', 9 => 'ccc-1551', 10 => 'ccc-1741', 11 => 'ccc-2145', ); Rezultāts vajadzīgs šāds: aaa - 2111 2342 1532 1768<br/> bbb - 1997 1653 1456 2145<br/> ccc - 1401 1551 1741 2145<br/> Tik tālu tiku foreach($mas as $key=>$value) { $temp = explode('-', $value); $datums = $temp[0]; $laiks = $temp[1]; $temp = explode('-', $mas[$key+1]); $datums_next = $temp[0]; $laiks_next = $temp[1]; $temp = explode('-', $mas[$key-1]); $datums_prev = $temp[0]; $laiks_prev = $temp[1]; //te apstājos. visādus salīdzināšanas izmēģināju dažādā secībā... }; Link to comment Share on other sites More sharing options...
andrisp Posted May 14, 2007 Report Share Posted May 14, 2007 <?php $new_arr = array(); foreach($mas as $v) { list($before, $after) = explode('-', $v); $new_arr[$before][] = $after; } foreach($new_arr as $k => $v) { echo $k.' - '.implode(' ', $v).'<br />'; } ?> Link to comment Share on other sites More sharing options...
Val Posted May 14, 2007 Author Report Share Posted May 14, 2007 Liels paldies. Link to comment Share on other sites More sharing options...
Val Posted July 6, 2007 Author Report Share Posted July 6, 2007 Tagad bišku līdzīgi. No $mas jāiegūst datumi, kas sagrupēti intervālos tb tikai intervālu galapunkti. Galarezultāts izskatās šādi: 2007/01/30 - 2007/02/02, 2007/02/20 - 2007/02/22, 2007/02/28 Darboties darbojas, bet uztaisīts čerez Ž... Varbūt kāds var ieteikt izmantot ko citu? Patreizējais kods te: http://paste.php.lv/5759/nonum Link to comment Share on other sites More sharing options...
bubu Posted July 6, 2007 Report Share Posted July 6, 2007 Taisi to vienā ciklā - tad nebūs jocīgas stringu graizīšanas. Vispirms noskaidro rītdienas datumu tekošajam masīva elementam (to tu jau tur dari). Un ja tas nesakrīt ar nākamo, tad izdrukā $sākums - $beigas, un atceries par $sākums nākamo elementu. Ja sakrīt, tad neko nedrukā. Vēl neliela pārbaude/apstrāde uz pirmo/pēdējo masīva elementu un viss. Link to comment Share on other sites More sharing options...
Val Posted July 6, 2007 Author Report Share Posted July 6, 2007 Domu sapratu... :) Link to comment Share on other sites More sharing options...
Recommended Posts