Jump to content
php.lv forumi

manīgā tipi


bra

Recommended Posts

Man ir radusies diazgan intersanta problēma.

 

tātad ir manīgais kura vērtība ir piemēram TB 21034 un vajag panākt lai šim manīgajam var pieskaitīt +1 un tā vērība palielinās uz TB 21035, bet tā lielākā problēma slēpjas apstāki ka es nevaru paedzēt kāda būs tā neciparikā daļā, īsāk sakot tas ko vēlos ir atdalīt cipraisko no necipriskās daļas un tad pieskaitīt +1 un tad atkal to visu salikt kopā...

 

Ir kādas idejas?

 

Paldies

Link to comment
Share on other sites

Vispirms ir jāzin kurā daļā būs burti, jo tad varēs uztaisīt preg_matchu...

Ja tomēr formāts ir variabls ABC###DEF### ... tad ir jānodefinē kuru segmentu inkrementēt un tad arī ar pregu dabūt konkrētu..

 

Ja pieņemam, ka parasti inkrementē pēdējo segmenu (P/Z numurs),tad var darīt šitā

 

preg_match( '/([\d]+)[^\d]*$/', $text, $m );
$cipars = (int) $m[1];
$jaunscipars = $cipars + 1;
$new_text = preg_replace( '/('.$cipars.')([^\d])*$/', $jaunscipars.'\2', $text);

 

PS: kods ir jāpielabo, jo neesmu to pārbaudījis

Edited by Delfins
Link to comment
Share on other sites

Risinājums cherez zh, performance 0, bet tomēr...

1. ej cauri stringam, ņem pa vienam simbolam

2. ja simbols nav cipars, tad liec/papildini mainīgo $str

3. ja simbols ir cipars, tad liec/papildini mainīgo $num

4. kad esi izgājis cauri stringam, tad veic vajadzīgās darbības ar $num

5. rezlutātā savieno $str . $num

Ja arī beigās var būt burti, tad ievies mainīgo $str2 un to aizpildi, ja $num nav null

Link to comment
Share on other sites

×
×
  • Create New...