Tik tikko ienāca prātā doma, kā iekš PHP samainīt vietām divu mainīgo vērtības, neizmantojot trešo mainīgo.
Agrāk rakstīju:
$c = $a;
$a = $b;
$b = $c;
Tagad rakstīšu:
list($a, $b) = array($b, $a);
09:16 @ 2004-02-19 = 16 blabla
Tik tikko ienāca prātā doma, kā iekš PHP samainīt vietām divu mainīgo vērtības, neizmantojot trešo mainīgo.
Agrāk rakstīju:
$c = $a;
$a = $b;
$b = $c;
Tagad rakstīšu:
list($a, $b) = array($b, $a);
Tātad tā. Kopīraita notice. Viss materiāls, kas atrodams šajā saitā nedrīkst tikt
izplatīts, kopēts, jebkādi citādi reproducēts vai izmantots
bez manas (laacz) rakstiskas atļaujas. šīs tiesības man laipni piedāvā Autortiesību Likums.
Jebkura informācija, kuru kāds labprātīgi publicē šajā saitā (piemēram, komentāri), pieder tās autoram. Taču, ievietojot infromāciju šajā saitā, tās autors sniedz saita īpašniekam tiesības to daļēji vai pilnā apjomā lietot, izplatīt, reproducēt, modificēt, adaptēt, publicēt, tulkot, publiski demonstrēt. Saita īpašnieks ir tiesīgs jebkuru komentāru jebkurā brīdī dzēst, vai modificēt.
© 1996 — 2025 laacz. Visas tiesības… nu jūs jau zināt, kur.
Spēcināts ar SPP (S Pivom Potjaņet) v2.0b (code name Marasmus)
Hostingu laipni piedāvā DEAC.
Lapa izlīdusi no servera dzīlēm 0.03903 sekundē(s)
1 Delf @ 09:41 (2004. gada 19. februāris)
kur nozagi ideju ? jeb pac izdomaaji so gjenialo ideju :)
$a = $a + $b;
$b = $a — $b;
$a = $a — $b;
-
7 = 4 + 3
4 = 7 — 3
3 = 7 — 4
taa pat arii ar * un / :)
2 Delf @ 09:42 (2004. gada 19. februāris)
/me liekas ka php gana iekshaa izmanto kaut ko "tresho" (neba temp array)
3 laacz @ 09:58 (2004. gada 19. februāris)
Delf:
Tavs gadījums der tikai, ja vietām jāmaina skaitļi.
A tas, ka PHP pats izmanto kaut ko trešo, mani nekrata, jo ātrāk būs tad, ja PHP interpretators jamo iznmanto, nekā tad, ja es pats to daru :)
4 Mark @ 11:59 (2004. gada 19. februāris)
Īsti kodieri domā bitos :)
$a = $a ^ $b;
$b = $a ^ $b;
$a = $a ^ $b;
5 cyberspace @ 12:24 (2004. gada 19. februāris)
Intresanti kā tas ir realizets zemaka līmeni. Sportiskas intreser pēc:) varbūt tomer is gadijumi kad labak ir izmantot tresso mainigo:)
6 Smejmoon @ 12:27 (2004. gada 19. februāris)
No offence:
>>>a,b = b,a
zem segas tur notiek taa
tuple(a,b) = tuple(b,a)
7 -- @ 13:20 (2004. gada 19. februāris)
Ja veseli skaitļi, tad visātrāk ir:
a <–> b:
-–––––
a = a xor b
b = b xor a
a = a xor b
8 sklp @ 13:21 (2004. gada 19. februāris)
Vai pat īsāk ;)
$a^=$b^=$a^=$b;
9 misame @ 14:41 (2004. gada 19. februāris)
bija bija šitāda (http://asdf.lv/stufi/xor.htm) lieta
10 Lupus @ 14:53 (2004. gada 19. februāris)
vienkāršība? Es tādu kodu lasīšu un domāšu kas tur notiek. Man labāk patīk ja viss smuki priekšā uzrakstīts.
Nemaz nerunājot par to ka šitādos sīkumos tev rezultātā savāksies ievērojams overheads.
11 Grrr @ 17:59 (2004. gada 19. februāris)
Nemaz nerunājot par to, vai PHP tiešām otro variantu izpildīs ātrāk.
Bez tam.. sauciet mani par tupu, bet iedodiet piemēru, kur mainīgos jāswapo vietām, un kuru nevar pārrakstīt elegantāk (un iespējams ātrāk).
Vienīgais kas nāk prātā ir zortēšana, bet nu tur jau nu gan būtu labāk izmantot built–inus.
12 cu @ 18:46 (2004. gada 19. februāris)
matemātika:
a = 4
b = 3
a = a+b 7
b = a — b 7 — 3 = 4
a = a — b // 7 — 4 = 3
13 cu @ 19:11 (2004. gada 19. februāris)
ak šausmas, delf (pats pirmais komentārs) ir pilnīgi kopējis mani :))
14 Smejmoon @ 22:06 (2004. gada 19. februāris)
Starpcitu lāča variants strādā jebkuram mainīgo daudzumam :P
15 Druu @ 09:36 (2004. gada 20. februāris)
…un ir daudz saprotamāks par matemātiskajām idejām
16 Armis @ 14:32 (2004. gada 20. februāris)
Butiba sis tipa hints darbojas visas progr.val., biezi vien jaizmanto kads(–i) liekais(–ie) mainigie, lai kaut ko apmainitu vietam!!! Ja iet skola un lasa gramatas, tad sadu padomu var uzzinat….es to uzzinaju pirms 4 gadiem…. :–PPPP